嵌入式硬件通信接口协议-IIC(二):分层架构设计模拟接口
数据输出
如上示例发送一个16进制数据0xDC的时序示意图,最重要的原则是:SCL为低电平时,才可以改变SDA输出数据;SCL为高电平时,必须SDA不抖动不改变。
代码实现的过程,类似于SPI模拟时类似,数据位“踩着”时钟逐bit被输出,每输出一bit就要对数据进行移位“buf <<= 1;”,这样在下一个SCL低电平时候输出下一个bit。
完成输出后立即对SDA的IO管脚设为输入模式,即调用iic_set_io(iic_n, 1);函数来实现。
数据采样
类似于数据发送,逐bit踩着SCL接收。这里的数据采样,就是IIC主机接收来自外设器件发来的数据,最重要的原则是:SCL为低电平时,做延时等待保证SDA数据稳定;SCL为高电平时,读取SDA的IO管脚电平。
应答ACK/NACK
从时序图可以看到,应答位的ACK和NACK区别在于,第9个SCL高电平期间,SDA所呈现的电平状态不同。
从上篇文章我们可以知道,IIC总线的电路连接,一般地SCL和SDA都有上拉电阻Rp,也就是说如果IIC从机设备,由于不存在(硬件未焊接)、出故障(烧坏)或者其他原因,导致没有信号产生的时候,此时SDA会处于NACK的状态,也就是IO管脚电平被上拉电阻拉高了,可以理解为“默认”电平,没有“回应”。
应答的目的,就是“接收方”告知“发送方”,我已正常收到刚刚发来的数据。
等待应答ACK
既然是应答,就有两向性:IIC从机应答IIC主机;IIC主机应答IIC从机。
上图的应答ACK/NACK都是IIC主机主动输出的,是用来告知从机“我主机已正常收到”。
而IIC从机告知主机的应答ACK,这里要用等待ACK的概念,主机通过读取SDA管脚电平来检测ACK信号。
以上是利用GPIO管脚模拟实现的时序,封装成DigCore_Embed嵌入式软件架构的BSP层接口,对上层提供IIC硬件接口,向下操作GPIO和时序的模拟。移植过程中可以根据目标平台,在上述这些已经封装好的接口内,做适当调整。
比如采用官方Demo程序代替GPIO模拟方案,只需要修改这以上接口中的代码即可,对于上层应用库,不论是温湿度传感器SHT20,还是EEPROM存储芯片AT24C1024B,甚至是BS81163-A的触摸键盘芯片,这几个使用了BSP层的IIC接口,这些代码都无需改动。
这就是嵌入式软件的分层设计思想的优势。
以上函数内部所调用的接口,都是当前BSP层里IIC模块源码中的静态函数:
总结,IIC时序的模拟,主要思路是根据IIC时序特点,在对应的信号后面做对应的时延,以达到时序的展现!难点之处就是把IIC时序拆解成多个信号特征进行模拟时,如果对信号时序图了解不深,在对比代码时比较绕,需要静下心仔细核对!
以上代码仅仅完成初步的编写和整理,未在具体外设上验证。此BPS层的IIC模块最终源码,敬请期待下回分享出来!
★★★★★推荐文章
《【嵌入式编程】函数返回类型设计》
《【嵌入式编程】平台大小端存储差异解决办法》
《嵌入式硬件通信接口-使用RingBuffer处理数据(二)详细设计过程》
《嵌入式硬件通信接口-使用RingBuffer处理数据(一)》
《快速开发MQTT(一)电子工程师眼中的MQTT》
《快速开发MQTT(二)初识MQTT》
《MQTT客户端搭建-最清晰的MQTT协议架构》
《MQTT服务端搭建-最快方式验证自己开发的客户端》
★★★★★相似文章
《嵌入式硬件通信接口协议-UART(五)数据包设计与解析》
《嵌入式硬件通信接口协议-UART(四)设计起止式的应用层协议》
《嵌入式硬件通信接口协议-UART(三)快速使用串口及应用》
《嵌入式硬件通信接口协议-UART(二)不同电气规范下的标准》
《嵌入式硬件通信接口协议-UART(一)协议基础》
《嵌入式硬件通信接口协议-SPI(三)模拟接口应用》
《嵌入式硬件通信接口协议-SPI(二)分层架构设计模拟接口》
《嵌入式硬件通信接口协议-SPI(一)协议基础》
《嵌入式硬件通信接口协议-IIC(一)协议基础》
★★★★★扩展阅读
《【硬件电路】AltiumDesigner18规则检查含义》
《【硬件电路】N沟道、P沟道MOS管基本原理与应用案例》
图片新闻
最新活动更多
-
11月22日立即报名>> 【线下论坛】华邦电子与莱迪思联合技术论坛
-
即日-11.30免费预约申请>>> 燧石技术-红外热成像系列产品试用活动
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
-
限时免费下载立即下载 >>> 2024“机器人+”行业应用创新发展蓝皮书
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
推荐专题
- 1 同源共创 模式革新 | 华天软件皇冠CAD(CrownCAD)2025新品发布会圆满举行
- 2 上海国际嵌入式展暨大会(embedded world China )与多家国际知名项目达成合作
- 3 史上首次,大众终于熬不住开启40亿降本计划!关3个工厂,裁员万名...
- 4 iEi威强电新品丨IMBA-AM5:工业计算的强劲引擎
- 5 守护绿色学习空间,EK超低温热泵服务对外经济贸易大学图书馆
- 6 颜值高 有“门”道|贝特威汽车门板内饰AI视觉检测解决方案
- 7 观众登记启动 优解制造未来,锁定2025 ITES深圳工业展
- 8 “秸”尽全力,防患未“燃” | 秸秆焚烧智能监控解决方案
- 9 揭秘:「全球知名跨境电商」构建核心竞争力的“独门绝技”是?
- 10 3大场景解读 | 红外热像仪赋能科研智造创新应用
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论