嵌入式硬件通信接口协议IIC二:分层架构设计模拟接口2
关于分层设计的思想,在之前的一篇文章中《嵌入式硬件通信接口协议-SPI(二)分层架构设计模拟接口》介绍SPI接口设计时,已经做了详细的设计过程讲解,在此就不赘述了。现在参考SPI的BSP层设计思路,用同样的方法来设计IIC接口的BSP层代码模块。本文将要讲解和实现的内容主要分为两个部分:代码实现IIC接口管理、代码实现IIC时序。IIC接口管理接口管理的目的是想在后期扩展时,一个工程里可使用多个IIC接口。这里暂不考虑使用复杂的数据结构,仅仅采用简单的宏定义,放在头文件中,省去麻烦的内存申请、分配这一些操作。以IIC接口序号“1”开始向后排,新增IIC接口时,直接参考当前示例来定义后续的IIC接口序号和管脚即可:#define IIC_1 1#define IIC1_PORT_SCL ......阅读全文
嵌入式硬件通信接口协议IIC二:分层架构设计模拟接口2
关于分层设计的思想,在之前的一篇文章中《嵌入式硬件通信接口协议-SPI(二)分层架构设计模拟接口》介绍SPI接口设计时,已经做了详细的设计过程讲解,在此就不赘述了。现在参考SPI的BSP层设计思路,用同样的方法来设计IIC接口的BSP层代码模块。本文将要讲解和实现的内容主要分为两个部分:代码
嵌入式硬件通信接口协议IIC二:分层架构设计模拟接口3
应答的目的,就是“接收方”告知“发送方”,我已正常收到刚刚发来的数据。等待应答ACK既然是应答,就有两向性:IIC从机应答IIC主机;IIC主机应答IIC从机。上图的应答ACK/NACK都是IIC主机主动输出的,是用来告知从机“我主机已正常收到”。而IIC从机告知主机的应答ACK,这里要用等
嵌入式硬件通信接口协议IIC二:分层架构设计模拟接口1
关于分层设计的思想,在之前的一篇文章中《嵌入式硬件通信接口协议-SPI(二)分层架构设计模拟接口》介绍SPI接口设计时,已经做了详细的设计过程讲解,在此就不赘述了。现在参考SPI的BSP层设计思路,用同样的方法来设计IIC接口的BSP层代码模块。本文将要讲解和实现的内容主要分为两个部分:代码
嵌入式硬件通信接口协议IIC一:协议基础(二)
关于理解和记忆,推荐分组记忆:SCL高电平时,SDA拉低开始,SDA拉高结束;SCL高电平时,接收方采样SDA管脚电平;SCL低电平时,发送方改变SDA管脚电平;应答位,SDA低电平表示ACK,SDA高电平表示NACK。以上就是IIC在通信过程中,可能出现的信号时序状态特征。如果要和SPI接口对比,
嵌入式硬件通信接口协议SPI三:模拟接口应用(二)
验证模拟SPI接口的正确性,通过读取SPI-FLASH芯片的厂商ID,校验读到的数据与手册是否一致。FLASH功能模块属于模块库层,介于应用层和驱动层之间。因此对SPI-FLASH模块的源码封装成lib层。创建源码文件:dclib_spiflash.cdclib_spiflash.h同样的也需要对该
嵌入式硬件通信接口协议IIC一:协议基础(一)
本节继续讲嵌入式硬件通信接口协议中的又一个串行通信接口-IIC。相比于UART串口协议和SPI串行外设接口协议,这个IIC又有其独特之处。简介IIC(Inter-Integrated Circuit),集成电路总线。IIC 即Inter-IntegratedCircuit(集成电路总
嵌入式硬件通信接口协议IIC一:协议基础(三)
AT24C1024B存储芯片的时钟要求:综上所述,IIC总线接口,属于两线、多主多从、半双工通信接口协议。熟悉两根信号线的时序图,基本上对IIC的了解就差不多了。关于IIC接口的分层架构设计,敬请期待后续更新。★★★★★推荐文章《【嵌入式编程】函数返回类型设计》《【嵌入式编程】平台大小端存储差异解决
嵌入式硬件通信接口协议SPI三:模拟接口应用(一)
简单完成模拟SPI各个接口的实现后,仅仅利用示波器抓取信号的时序当然是不够的。虽然单片机作为SPI主机输出数据时的信号很容易抓取,但是从机发出的数据(即主机读取MISO信号时序),还要找个SPI接口的外设器件,这样主机发出、从机反馈。比如SPI-FLASH,此处找来一片型号为W25Q16的F
嵌入式硬件通信接口协议SPI:协议基础(二)
信号时序四线SPI接口的时序一般的总是先拉低从机选择信号线SS,然后输出SCLK,带着数据MOSI,此时MISO为高阻态。大致如下如:一般有SPI接口的器件,在Spec上都会有对应的时序图,这里分别截取SPI接口FLASH型号为GD25Q32C、SPI接口OLED型号为QG-2832TLBF
嵌入式硬件通信接口协议SPI:协议基础(一)
本节继续讲嵌入式硬件通信接口协议中的另外一个串行通信接口-SPI。相比于UART串口协议,SPI又有着其独特之处。简介SPI(全称SerialPeripheral Interface),串行外设接口。SPI是串行外设接口(SerialPeripheral Interface)的缩写。
嵌入式硬件通信接口协议SPI:协议基础(三)
时钟速率速率选择定义了时钟信号线在数据传输是的翻转速率,这体现到每个芯片定义的接口时序图中,即可承受的速率范围,如果主机设的速率太快,而从机响应过慢会导致通信失败。数据bit位大小端选择数据的发送优先bit可配置,从上篇的UART协议可以知道,UART规定了数据优先发bit0,而这个SPI是
嵌入式硬件通信接口协议UART:快速使用串口及应用2
三、调试-输出开发调试过程中,输出的内容基本上就是想查看的变量值、代码的执行位置跟踪、算法或者某些运算的结果等等。这些输出,仅用于调试阶段,而在人机调试过程中,使用计算机的串口助手软件进行交互,则输出的数据应该便于识读和判断。1. C库函数printf格式输出重定向到串口输出输出串口数据过程中,
嵌入式硬件通信接口协议:UART不同电气规范下的标准2
而负逻辑电平的RS232的信号电压不仅恰好相反,而且电压大小也不一样。在MAX232芯片上,逻辑“0”对应的是+10V,逻辑“1”对应的是-10V。同时RS232还定义了机械接口特性,常见的有DB-9接口和DB-25接口,其接口定义如下表:针脚信号定义作用DB-91DCD载波检测Data Carri
嵌入式硬件通信接口:使用RingBuffer处理数据(二)
目测该项目确实有些久远了,最后一次commit已是两年前的2016年5月了。先不管,好酒也是有年份的!下载到本地,打开项目文件夹,查看C文件和H文件。快速浏览ringbuffer.c文件中对外封装的各个函数,主要有:循环缓冲区初始化增加一个数据元素增加多个数据元素读取一个元素读取多个元素查看
嵌入式硬件通信接口协议UART:快速使用串口及应用1
一、串口启用流程开讲前,先找几款芯片的串口demo程序瞄一眼。依次有STM32的V3.5标准库、nRF52832的官方demo以及51核的STC15系列单片机的官方DEMO。从以上的部分demo例程来看,并结文章《嵌入式硬件通信接口协议-UART(一)协议基础》的介绍,在启用串口的时候,需要配置的那
嵌入式硬件通信接口协议UART:快速使用串口及应用4
五、初见数据协议解析如果是简单几个字符的指令,可以用上述那样简单判断,但是在稍微中等级别的工程项目中,用那样的方式都已经很不便于处理和扩展了。比如有一串数据,并且长度不确定,将会超过10个字节、20个字节、100个字节甚至更多,那么这时候就必须使用协议解析的方式。通常的,数据协议都会有协议头、长度、
嵌入式硬件通信接口协议UART:快速使用串口及应用3
2. ANSI C标准中有几个标准预定义宏:__LINE__:源代码中的行号(字符串形式)__FILE__:当前*.c源码文件的文件名(字符串形式)__DATE__:编译日期(字符串形式)__TIME__:编译时间(字符串形式)__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为
嵌入式硬件通信接口协议:UART不同电气规范下的标准1
在上一篇《嵌入式硬件通信接口协议-UART(一)协议基础》中,简单而细致描述了UART的各个配置项以及通信过程的信号时序,此篇将继续介绍UART接口在不一样的电气特性下,所使用的一些接口规范。一、 简介实际上UART只是对信号时序进行定义,而未定义其电气特性。在不一样的应用场景下,不同
嵌入式硬件通信接口协议:UART不同电气规范下的标准3
(三) RS-422RS-422标准全称是“平衡电压数字接口电路的电气特性”,该协议制定了接口电路的电气特性。除了信号线的电气特性,其他规范基本都是沿用RS232的规范。RS-422的信号线采用的是差分传输方式,即原来的TxD、RxD信号线,此时分别改用两根线来完成,即TxD+和T
嵌入式硬件通信接口:使用RingBuffer处理数据(一)
事实上UART只是一个传输层的协议。在实际的项目使用中,往往是根据项目的具体需求,在以UART作为物理传输接口的通信方式上,自定义私有的应用层协议,这个应用层协议本质就是数据协议,并且对协议的解析和实现,都需要MCU对数据进行缓存、计算、校验、分析等操作。说到缓存,在这先卖个关子……估计大部分人首先
电动汽车充电接口及通信协议新国标发布
12月28日,质检总局、国家标准委联合国家能源局、工信部、科技部等部门在京发布新修订的5项电动汽车充电接口及通信协议国家标准。质检总局党组成员、国家标准委主任田世宏,国家能源局副局长郑栅洁出席会议并讲话。 这5项国家标准分别是:《电动汽车传导充电系统 第1部分:一般要求》《电动汽车传导充电用
嵌入式软件系统测试中的仿真系统结构设计
1 嵌入式系统概述 嵌入式系统是以计算机技术为基础,以应用为中心,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的计算机系统。 嵌入式软件是基于嵌入式系统设计的软件,是计算机软件的一种,同样由程序及文档组成,可细分成系统软件、支撑软件、应用软件三类。
闪存技术大餐——架构/颗粒/接口/可靠性全面解析架(二)
SSD接口技术 我们知道闪存磁盘是在HDD以后出现的,由于SSD优异的随机性能、越来越大的容量和越来越低的成本等优势,使得闪存热度上升、乃至替换HDD的趋势。由于历史继承性等原因,SSD在设计是也是借鉴了部分HDD技术,包含接口技术,现在绝大多数SSD都是采用SATA/SAS接口。SATA接口
闪存技术大餐——架构/颗粒/接口/可靠性全面解析架(二)
Flash颗粒解析 学习过模拟电路的同学都知道,在模电原理里三极管分两种,一种是双极性三极管,主要基于载流子用来做电流放大,另一种叫做CMOS场效应三极管,通过电场控制的金属氧化物半导体。NAND Flash就是基于场效应P/N沟道和漏极、栅极技术通过浮栅Mosfet对栅极充电
产品设计之接口篇
导语随着科学技术的进步,芯片的集成度越来越高,所以在产品的设计上,能够保证产品本身稳定,抗干扰,防静电等因素,芯片外围的接口设计,也是产品开发过程中一个重要的环节,接下来,本文就针对产品设计过程中常见的几种接口,和大家交流下。电源接口电源接口是电子产品不可缺少的一部分,芯片供电不管是通过外部电池直接
采用SPI接口的模拟开关提高通道密度
本文讨论旨在解决这种设计挑战的ADI公司新一代SPI控制开关及其架构,以及相对于并行控制开关,它在提高通道密度上有何优势。ADI公司创新的多芯片封装工艺使得新型SPI转并行转换器芯片可以与现有高性能模拟开关芯片结合在同一封装中。这样既可节省空间,又不会影响精密开关性能。测试设备中的通道数最大
CAN接口异常分析指南(二)
5、近距离通信正常,远距离无法通信。可能原因:a. CAN速率过高。由于CAN总线的仲裁机理,其对延时有着非常严格的要求。线缆延时的存在,使得导线长度制约着实际应用中CAN的最高工作速率。CAN速率与通信距离成反比,速率越高,通信距离越短。b. 线缆阻抗大,远端信号幅值过低。解决方法:a.降低速率,
嵌入式光谱
德国tec5公司新开发的嵌入式光谱仪平台tecSaaS(tec5 Spectrometer as a Sensor),基于UV-VIS-NIR光谱技术,是一款可以不依赖于PC而独立工作的、模块化的光谱测试平台,可以直接集成到可移动式检测设备或工厂的生产线中,以实现高度智能化,灵活多样化和高度自动
嵌入式光谱
德国tec5公司新开发的嵌入式光谱仪平台tecSaaS(tec5 Spectrometer as a Sensor),基于UV-VIS-NIR光谱技术,是一款可以不依赖于PC而独立工作的、模块化的光谱测试平台,可以直接集成到可移动式检测设备或工厂的生产线中,以实现高度智能化,灵活多样化和高度自动
嵌入式光谱
德国tec5公司新开发的嵌入式光谱仪平台tecSaaS(tec5 Spectrometer as a Sensor),基于UV-VIS-NIR光谱技术,是一款可以不依赖于PC而独立工作的、模块化的光谱测试平台,可以直接集成到可移动式检测设备或工厂的生产线中,以实现高度智能化,灵活多样化和高度自动