CN114461566A - 基于单片机i2c接口的协议扩展与移植方法 - Google Patents
基于单片机i2c接口的协议扩展与移植方法 Download PDFInfo
- Publication number
- CN114461566A CN114461566A CN202210020846.6A CN202210020846A CN114461566A CN 114461566 A CN114461566 A CN 114461566A CN 202210020846 A CN202210020846 A CN 202210020846A CN 114461566 A CN114461566 A CN 114461566A
- Authority
- CN
- China
- Prior art keywords
- protocol
- chip microcomputer
- single chip
- interface
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 238000002054 transplantation Methods 0.000 title claims abstract description 9
- 238000003491 array Methods 0.000 claims abstract description 8
- 238000013508 migration Methods 0.000 claims 2
- 230000005012 migration Effects 0.000 claims 2
- 238000004891 communication Methods 0.000 abstract description 6
- 238000003032 molecular docking Methods 0.000 abstract description 2
- 238000012795 verification Methods 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
- G06F15/7832—Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Communication Control (AREA)
Abstract
本发明涉及基于单片机I2C接口的协议扩展与移植方法,基于单片机I2C接口的协议扩展与移植方法,其特征在于,进行协议扩展时,在单片机的程序空间中将对应的寄存器地址扩展成一个数组的形式Address[RegInd],对应256个寄存器地址则对应256个数组,数组的长度根据需要进行定义。本发明的方法在I2C遵循标准单片机I2C协议格式的状态下,扩展成Uart通信协议格式,并添加协议校验,增强扩展性、移植性和健壮性。修改之后的协议可以自定义长度和添加扩展协议Uart协议和I2C协议可以互相移植,实现平台化对接。
Description
技术领域
本发明属于显示屏单片机与主机之间的通信协议传输方式领域,特别涉及一种基于单片机I2C接口的协议扩展与移植方法。
背景技术
在单片机外设接口中,I2C协议格式是寄存器的形式,寄存器地址常用0x00~0xFF,或者扩展成2字节的寄存器地址,在前期定义好之后,当后期协议增加比较多的情况下很难扩展,或者将我们常用的Uart协议接口移植到I2C协议上,协议完全不通用,需要重新开发,大大影响开发时间,本发明主要介绍一种I2C协议的扩展方式解决上述的扩展性和移植简便性的问题。
发明内容
本发明所要解决的技术问题是提供一种基于单片机I2C接口的协议扩展与移植方法。
本发明解决上述技术问题的技术方案如下:
基于单片机I2C接口的协议扩展与移植方法,其特征在于,进行协议扩展时,在单片机的程序空间中将对应的寄存器地址扩展成一个数组的形式Address[RegInd],对应256个寄存器地址则对应256个数组,数组的长度根据需要进行定义。
进一步的,按照原先的Uart协议解析的方式对每个寄存器中存储的数据进行对应定义。
进一步的,每个寄存器中存储具有相关性的数据。
本发明的有益效果为:本发明的方法在I2C遵循标准单片机I2C协议格式的状态下,扩展成Uart通信协议格式,并添加协议校验,增强扩展性、移植性和健壮性。修改之后的协议可以自定义长度和添加扩展协议Uart协议和I2C协议可以互相移植,实现平台化对接。
附图介绍
图1为IRQ示意图;
图2为标准I2C连续写时序示意图;
图3为标准I2C连续读时序示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
I2C的通信方式是主从模式,从机无法主动发送数据,需要硬件添加1个IRQ的IO,从机需要主动发送数据时,通过IRQ给一个脉冲的形式通知主机读取从机发送的数据,如图1所示。
标准I2C时序见图2和图3。
以连续写说明,标准时序中连续写对应的Byte1为Byte0中的寄存器地址RegisterAddress,Byte2则自动加1为Register Address+1,寄存器地址为1个Byte,按照最大0x00~0xFF计算,一帧数据最多256个字节.
例如:通过I2C时序给寄存器地址为0x10的空间写入3个字节(0x21、0x23,0x56),存放空间状态见表1:
表1
Address | Data |
0x10 | 0x21 |
0x11 | 0x23 |
0x12 | 0x56 |
进行协议扩展时,在单片机的程序空间中将对应的寄存器地址扩展成一个数组的形式Address[RegInd],对应256个寄存器地址则对应256个数组,数组的长度可以根据需要定义足够长,例如1024或2048……,当寄存器地址为0x00时,数据1填入Address[0],数据2放入Address[1]……
例如:通过I2C时序给寄存器地址为0x10的空间写入3个字节(0x21、0x23,0x56),存放空间状态见表2:
表2
Address | Data |
0x10 | 0x21、0x23、0x56 |
由于扩展之后的协议数据是一个数组的形式,那么我们完全可以按照原先的Uart协议解析的方式进行定义,上层解析逻辑保持完全一致,见表3:
表3
Byte1 | Header | 起始符(1Byte) |
Byte2 | Commond | XX(1Byte) |
Byte3 | Length_H | 数据区的字节长度高位(1Byte) |
Byte4 | Length_L | 数据区的字节长度低位(1Byte) |
Byte(4+Length) | DATA(0)~DATA(Length-1) | 数据区(Length字节) |
Byte(5+Length) | CRC16_H | CRC16校验的高位字节(1Byte) |
Byte(6+Length) | CRC16_L | CRC16校验的低位字节(1Byte) |
Byte(7+Length) | End | 结束符(1Byte) |
实施例1
原先我们的平台是主机与显示屏一体,单片机接收数据的协议使用Uart的方式,随着车载显示屏的发展,当前项目更新为机屏分离的方案,使用I2C的方式进行协议传输。
下表4是关于升级包数据以及显示屏亮度等级数据的一个示例:
表4
Address | Data |
0x10(升级包数据) | 0xE1(帧头)、0x23(Commond)、0x04、0x00(Length)、Data0~Data1023、0xE1(帧尾) |
0x11(显示屏亮度等级数据) | 0xE1(帧头)、0x03(commond)、0x00、0x03(Length)、Data0~Data2、0xE1(帧尾) |
以升级包数据协议为例(需要传输1024字节数据做为一包完整的数据):
实施前:
在0x8D~0xD0地址中存放68个字节数据,根据后面的协议说明可以看到,一帧数据中有64字节数据,需要传送1024字节的话,需要分段传输1024/64=16次数据包
实施后:
Address | Data |
0x10(升级包数据) | 0xE1(帧头)、0x23(Commond)、0x04、0x00(Length)、Data0~Data1023、0xE1(帧尾) |
直接在0x10地址上存放,可以看到,只需要传输一次即可完成1024字节数据的传输。
本发明的做法,与uart通信协议相似,优点在于:
1、沿用Uart通信协议格式,只修改底层驱动即可完成协议的移植
2、添加升级协议,可以使用256字节或1024字节数据长度,加快升级速率
工厂生产测试协议临时可随意扩展添加。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.基于单片机I2C接口的协议扩展与移植方法,其特征在于,进行协议扩展时,在单片机的程序空间中将对应的寄存器地址扩展成一个数组的形式Address[RegInd],对应256个寄存器地址则对应256个数组,数组的长度根据需要进行定义。
2.根据权利要求1所述的基于单片机I2C接口的协议扩展与移植方法,其特征在于,按照原先的Uart协议解析的方式对每个寄存器中存储的数据进行对应定义。
3.根据权利要求1所述的基于单片机I2C接口的协议扩展与移植方法,其特征在于,每个寄存器中存储具有相关性的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210020846.6A CN114461566A (zh) | 2022-01-10 | 2022-01-10 | 基于单片机i2c接口的协议扩展与移植方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210020846.6A CN114461566A (zh) | 2022-01-10 | 2022-01-10 | 基于单片机i2c接口的协议扩展与移植方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114461566A true CN114461566A (zh) | 2022-05-10 |
Family
ID=81409873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210020846.6A Pending CN114461566A (zh) | 2022-01-10 | 2022-01-10 | 基于单片机i2c接口的协议扩展与移植方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114461566A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102638451A (zh) * | 2012-03-14 | 2012-08-15 | 江苏斯菲尔电气股份有限公司 | Modbus通讯协议的寄存器列表数据的动态重组方法 |
CN103403803A (zh) * | 2011-02-04 | 2013-11-20 | 株式会社东芝 | 可以很容易在其中设定扩展功能的存储器系统 |
US20140006710A1 (en) * | 2012-06-29 | 2014-01-02 | Shinichi Matsukawa | Memory system in which extension function can easily be set |
CN107766273A (zh) * | 2017-11-09 | 2018-03-06 | 安徽皖通邮电股份有限公司 | 两线编解码与localbus互转以实现板间数据交互的方法 |
CN108139990A (zh) * | 2015-10-23 | 2018-06-08 | 高通股份有限公司 | 具有高数据率模式的射频前端设备 |
CN109450592A (zh) * | 2018-09-29 | 2019-03-08 | 广东雅达电子股份有限公司 | 一种通信协议重组方法 |
CN113626350A (zh) * | 2020-05-07 | 2021-11-09 | 罗伯特·博世有限公司 | 系统部件和系统部件的应用 |
-
2022
- 2022-01-10 CN CN202210020846.6A patent/CN114461566A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103403803A (zh) * | 2011-02-04 | 2013-11-20 | 株式会社东芝 | 可以很容易在其中设定扩展功能的存储器系统 |
CN102638451A (zh) * | 2012-03-14 | 2012-08-15 | 江苏斯菲尔电气股份有限公司 | Modbus通讯协议的寄存器列表数据的动态重组方法 |
US20140006710A1 (en) * | 2012-06-29 | 2014-01-02 | Shinichi Matsukawa | Memory system in which extension function can easily be set |
CN108139990A (zh) * | 2015-10-23 | 2018-06-08 | 高通股份有限公司 | 具有高数据率模式的射频前端设备 |
CN107766273A (zh) * | 2017-11-09 | 2018-03-06 | 安徽皖通邮电股份有限公司 | 两线编解码与localbus互转以实现板间数据交互的方法 |
CN109450592A (zh) * | 2018-09-29 | 2019-03-08 | 广东雅达电子股份有限公司 | 一种通信协议重组方法 |
CN113626350A (zh) * | 2020-05-07 | 2021-11-09 | 罗伯特·博世有限公司 | 系统部件和系统部件的应用 |
Non-Patent Citations (1)
Title |
---|
朱宁西, 张齐: "基于ADμC812的微型可编程逻辑控制器", 兵工自动化, vol. 23, no. 01, 15 February 2004 (2004-02-15), pages 49 - 51 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102268699B1 (ko) | 저장 장치의 동작 방법, 호스트 장치의 동작 방법, 그리고 저장 장치 및 호스트 장치를 포함하는 사용자 시스템의 동작 방법 | |
CN103942061A (zh) | 电池固件更新方法、便携式电子装置及充电电池模块 | |
US7634611B2 (en) | Multi-master, chained two-wire serial bus | |
CN102902646B (zh) | 板卡通信方法及板卡、fpga的加载方法和系统 | |
KR102466160B1 (ko) | 데이터의 루프백을 수행하는 시스템 온 칩과 집적 회로, 및 이들을 포함하는 모바일 장치 | |
WO2019042323A1 (zh) | 多驱动兼容的控制装置和实现方法 | |
US20070079015A1 (en) | Methods and arrangements to interface a data storage device | |
CN103092806A (zh) | 基于spi数据传输时序的数据传输方法和系统 | |
CN109656844A (zh) | 一种AT24xx EEPROM驱动方法和装置 | |
CN101739322B (zh) | 嵌入式系统的测试装置及方法 | |
CN114817114B (zh) | 一种mipi接口、及其控制方法、装置及介质 | |
CN107526614B (zh) | Fpga开发板的通信方法 | |
CN110780189B (zh) | 一种基于fpga的sdio接口测试设备与方法 | |
CN104333401A (zh) | 蓝牙数据发送方法、接收方法、装置及系统 | |
CN115827543A (zh) | 一种基于FPGA实现eSPI通信方法、系统、设备及介质 | |
CN114461566A (zh) | 基于单片机i2c接口的协议扩展与移植方法 | |
CN103440334A (zh) | 移动终端的驱动匹配方法和装置 | |
CN101561663B (zh) | 一种运动控制系统及其控制方法 | |
CN103064817B (zh) | 一种简化两线式串行数据总线传输方法 | |
CN110633225B (zh) | 实体存储对照表产生装置及方法 | |
CN112395147B (zh) | Soc上的调试装置 | |
CN103164313A (zh) | 调试系统及方法 | |
CN115794701A (zh) | 一种dma功能虚拟串口的bmc芯片及方法 | |
US6530048B1 (en) | I2C test single chip | |
CN106657854A (zh) | 改变扩展显示标识数据信息的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |