CN114461566A - 基于单片机i2c接口的协议扩展与移植方法 - Google Patents

基于单片机i2c接口的协议扩展与移植方法 Download PDF

Info

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
Application number
CN202210020846.6A
Other languages
English (en)
Inventor
汪杨刚
李林峰
杨叶婷
杨明洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Haiwei Technology Co ltd
Original Assignee
Wuhan Haiwei Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Haiwei Technology Co ltd filed Critical Wuhan Haiwei Technology Co ltd
Priority to CN202210020846.6A priority Critical patent/CN114461566A/zh
Publication of CN114461566A publication Critical patent/CN114461566A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-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接口的协议扩展与移植方法。
背景技术
在单片机外设接口中,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字节数据做为一包完整的数据):
实施前:
Figure BDA0003462504850000041
在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接口的协议扩展与移植方法,其特征在于,每个寄存器中存储具有相关性的数据。
CN202210020846.6A 2022-01-10 2022-01-10 基于单片机i2c接口的协议扩展与移植方法 Pending CN114461566A (zh)

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)

* Cited by examiner, † Cited by third party
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 罗伯特·博世有限公司 系统部件和系统部件的应用

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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