本发明涉及通信,具体地,涉及一种芯片上电自动申请主机配置romid的方法和系统。
背景技术:
1、单总线技术因为与spi、i2c串行数据通信方式不同,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省i/o口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。
2、单总线主机或从机设备通过一个漏极开路或三态端口连接至该数据线,这样允许设备在不发送数据时释放数据总线,以允许设备在不发送数据时能够释放总线,而让其他设备使用总线,其内部等效电路。单总线要求外接一个约5k的上拉电阻。这样,当单总线在闲置时,状态为高电平。如果传输过程需要暂时挂起,且要求传输过程还能够继续,则总线必须处于空闲状态。传输之间的恢复时间没有限制,只要总线在恢复期间处于空闲状态(高电平)。如果总线保持低电平超过240us,总线上的所有器件将复位。另外,在寄生方式供电时,为了保证单总线器件在某些工作状态下(如:温度转换器件、eeprom写入等)具有足够的电源电流,必须在总线上提供强上拉。
3、在进行组网时,需要romid对其识别,其长度是64个bit。每次对组网的单颗器件进行访问时,都必须附带64个bit的romid信息,造成通讯时间过长。同时,组网完成后,主机无法确定第一物理位置的芯片的romid,因此无法得到实际的位置的信息,在实际应用中造成极大的困惑。
4、专利文献cn101661795a公开了一种烧录系统以及数据烧录方法,此烧录方法是将设定数据烧录至已与控制器电性连接的电可擦除只读存储器;数据烧录方法是对可程序化逻辑元件进行第一次设定,以断开只读存储器与控制器之间的连接,接着对可程序化逻辑元件进行第二次设定,将设定数据烧录至只读存储器,然后自只读存储器读出烧录之数据,并比对读出之数据以及网络设定数据,以确认烧录是否正确;之后,对可程序化逻辑元件进行第三次设定,使只读存储器重新连接至控制器。然而该专利无法完全解决目前存在的技术问题,也无法满足本发明的需求。
5、术语解释:
6、lsw,local-side single wire,局端单总线。
7、romid,器件编号,用于识别单总线网络中每个器件,客户只能编写一次。
8、eeprom,电擦写只读存储器,用于存储器件编号、是否编写过的标志位和可校准的参数。
9、charge pump,电荷泵,用于产生烧写eeprom的15v~20v的高电压。
10、local-side controller,局端控制器,接口单总线的写数据和烧写命令和烧写时间,烧写序列的单元。
11、writedata generator,写数据产生器和判断器件编号是否正确。
12、readdata pool,读数据池,读取eeprom的值到寄存器中,包含romid、是否编写过的标志位。
13、local interface,局端接口,解析器件编号命令和功能命令,接受通讯复位命令和发送响应命令,发送16bit的温度值,接受和发送crc值。
14、gpio,general purpose input/output port,主机端的通用接口。
技术实现思路
1、针对现有技术中的缺陷,本发明的目的是提供一种芯片上电自动申请主机配置romid的方法和系统。
2、根据本发明提供的芯片上电自动申请主机配置romid的方法,在芯片上电后,把电擦写只读存储器中的数据加载到读数据池中,如果器件是否编写过的标志位为1,即romid_ready寄存器为1时,表示此芯片已经获取器件编号romid,无需再次烧写;如果romid_ready寄存器为0,则芯片持续拉低器件接口信号dq,持续第一预设时长后释放;在主机端收到该第一预设时长的拉低信号后,触发烧写romid的程序,过程为:
3、发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,器件给出下拉第三预设时长的在位信号;发送写器件编号指令,如果romid_ready寄存器等于1,表示器件已经获取romid,退出当前状态,等待芯片发送通讯复位信号;发送写器件编号指令;发送器件编号的romid的值;发送crc校验值,局端控制器模块得到romid和crc的值,如果从协议上获得的crc校验值和自己计算的crc值相同,则将romid和romid_ready传递到写数据产生器中;等待第四预设时长,电荷泵产生预设范围的高压,将器件编号和romid_ready写入到电擦写只读存储器中。
4、优选地,读取romid的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送读取器件编号;芯片发送4个bit的器件编号。
5、优选地,匹配器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送匹配器件编号命令;主机发送第0个器件编号位、第1个器件编号位、第2个器件编号位、第3个器件编号位,如果自身的器件编号等于发送的器件编号,则选中此局端单总线装置;发送读取温度值的功能命令;芯片输出16bit的温度值和crc字节。
6、优选地,搜索器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送搜索器件编号命令;芯片发送第0个器件编号位,芯片发送第0个器件编号位的反值,主机发送接受到的第0个器件编号位,芯片发送第1个器件编号位,芯片发送第1个器件编号位的反值,主机发送接受到的第1个器件编号位,芯片发送第2个器件编号位,芯片发送第2个器件编号位的反值,主机发送接受到的第2个器件编号位,芯片发送第3个器件编号位,芯片发送第3个器件编号位的反值,主机发送接受到的第3个器件编号位,从而搜索到所有在局端网络中的局端单总线装置的数目和在位的器件编号位以及物理位置。
7、优选地,忽略器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送忽略器件编号指令;发送温度转换命令;在局端网络上的温度传感器发生一次温度转换。
8、根据本发明提供的芯片上电自动申请主机配置romid的系统,在芯片上电后,把电擦写只读存储器中的数据加载到读数据池中,如果器件是否编写过的标志位为1,即romid_ready寄存器为1时,表示此芯片已经获取器件编号romid,无需再次烧写;如果romid_ready寄存器为0,则芯片持续拉低器件接口信号dq,持续第一预设时长后释放;在主机端收到该第一预设时长的拉低信号后,触发烧写romid的程序,过程为:
9、发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,器件给出下拉第三预设时长的在位信号;发送写器件编号指令,如果romid_ready寄存器等于1,表示器件已经获取romid,退出当前状态,等待芯片发送通讯复位信号;发送写器件编号指令;发送器件编号的romid的值;发送crc校验值,局端控制器模块得到romid和crc的值,如果从协议上获得的crc校验值和自己计算的crc值相同,则将romid和romid_ready传递到写数据产生器中;等待第四预设时长,电荷泵产生预设范围的高压,将器件编号和romid_ready写入到电擦写只读存储器中。
10、优选地,读取romid的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送读取器件编号;芯片发送4个bit的器件编号。
11、优选地,匹配器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送匹配器件编号命令;主机发送第0个器件编号位、第1个器件编号位、第2个器件编号位、第3个器件编号位,如果自身的器件编号等于发送的器件编号,则选中此局端单总线装置;发送读取温度值的功能命令;芯片输出16bit的温度值和crc字节。
12、优选地,搜索器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送搜索器件编号命令;芯片发送第0个器件编号位,芯片发送第0个器件编号位的反值,主机发送接受到的第0个器件编号位,芯片发送第1个器件编号位,芯片发送第1个器件编号位的反值,主机发送接受到的第1个器件编号位,芯片发送第2个器件编号位,芯片发送第2个器件编号位的反值,主机发送接受到的第2个器件编号位,芯片发送第3个器件编号位,芯片发送第3个器件编号位的反值,主机发送接受到的第3个器件编号位,从而搜索到所有在局端网络中的局端单总线装置的数目和在位的器件编号位以及物理位置。
13、优选地,忽略器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送忽略器件编号指令;发送温度转换命令;在局端网络上的温度传感器发生一次温度转换。
14、与现有技术相比,本发明具有如下的有益效果:
15、(1)本发明所提供的一种芯片上电自动申请主机配置romid的方法,使得局端单总线装置能够在物理地址上和romid相匹配,提供了传统单总线装置所没有的功能;
16、(2)本发明所提供的romid_write(8’h15)rom命令使得局端单总线装置的romid能够被配置,突破了传统装置romid不能编写的功能;
17、(3)本发明所提供的局端4bit的romid比64bit的传统单总线的传输效率要高,能够满足局端16个器件的网络,如果主机端使用多个gpio端口,可以扩展局端网络至64,256,乃至1024,扩展网络简单。
1.一种芯片上电自动申请主机配置romid的方法,其特征在于,在芯片上电后,把电擦写只读存储器中的数据加载到读数据池中,如果器件是否编写过的标志位为1,即romid_ready寄存器为1时,表示此芯片已经获取器件编号romid,无需再次烧写;如果romid_ready寄存器为0,则芯片持续拉低器件接口信号dq,持续第一预设时长后释放;在主机端收到该第一预设时长的拉低信号后,触发烧写romid的程序,过程为:
2.根据权利要求1所述的芯片上电自动申请主机配置romid的方法,其特征在于,读取romid的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送读取器件编号;芯片发送4个bit的器件编号。
3.根据权利要求1所述的芯片上电自动申请主机配置romid的方法,其特征在于,匹配器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送匹配器件编号命令;主机发送第0个器件编号位、第1个器件编号位、第2个器件编号位、第3个器件编号位,如果自身的器件编号等于发送的器件编号,则选中此局端单总线装置;发送读取温度值的功能命令;芯片输出16bit的温度值和crc字节。
4.根据权利要求1所述的芯片上电自动申请主机配置romid的方法,其特征在于,搜索器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送搜索器件编号命令;芯片发送第0个器件编号位,芯片发送第0个器件编号位的反值,主机发送接受到的第0个器件编号位,芯片发送第1个器件编号位,芯片发送第1个器件编号位的反值,主机发送接受到的第1个器件编号位,芯片发送第2个器件编号位,芯片发送第2个器件编号位的反值,主机发送接受到的第2个器件编号位,芯片发送第3个器件编号位,芯片发送第3个器件编号位的反值,主机发送接受到的第3个器件编号位,从而搜索到所有在局端网络中的局端单总线装置的数目和在位的器件编号位以及物理位置。
5.根据权利要求1所述的芯片上电自动申请主机配置romid的方法,其特征在于,忽略器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送忽略器件编号指令;发送温度转换命令;在局端网络上的温度传感器发生一次温度转换。
6.一种芯片上电自动申请主机配置romid的系统,其特征在于,在芯片上电后,把电擦写只读存储器中的数据加载到读数据池中,如果器件是否编写过的标志位为1,即romid_ready寄存器为1时,表示此芯片已经获取器件编号romid,无需再次烧写;如果romid_ready寄存器为0,则芯片持续拉低器件接口信号dq,持续第一预设时长后释放;在主机端收到该第一预设时长的拉低信号后,触发烧写romid的程序,过程为:
7.根据权利要求6所述的芯片上电自动申请主机配置romid的系统,其特征在于,读取romid的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送读取器件编号;芯片发送4个bit的器件编号。
8.根据权利要求6所述的芯片上电自动申请主机配置romid的系统,其特征在于,匹配器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送匹配器件编号命令;主机发送第0个器件编号位、第1个器件编号位、第2个器件编号位、第3个器件编号位,如果自身的器件编号等于发送的器件编号,则选中此局端单总线装置;发送读取温度值的功能命令;芯片输出16bit的温度值和crc字节。
9.根据权利要求6所述的芯片上电自动申请主机配置romid的系统,其特征在于,搜索器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送搜索器件编号命令;芯片发送第0个器件编号位,芯片发送第0个器件编号位的反值,主机发送接受到的第0个器件编号位,芯片发送第1个器件编号位,芯片发送第1个器件编号位的反值,主机发送接受到的第1个器件编号位,芯片发送第2个器件编号位,芯片发送第2个器件编号位的反值,主机发送接受到的第2个器件编号位,芯片发送第3个器件编号位,芯片发送第3个器件编号位的反值,主机发送接受到的第3个器件编号位,从而搜索到所有在局端网络中的局端单总线装置的数目和在位的器件编号位以及物理位置。
10.根据权利要求6所述的芯片上电自动申请主机配置romid的系统,其特征在于,忽略器件编号的过程为:发送下拉为第二预设时长的通讯复位信号,等待第三预设时长之后,芯片给出下拉第三预设时长的在位信号;发送忽略器件编号指令;发送温度转换命令;在局端网络上的温度传感器发生一次温度转换。