嵌入式开发反思与总结一

    从51单片机开发板到STM32开发板再到Linux开发板以及FPGA,这些工具的接触和使用,总是让我觉得技术内容很杂很多,但当一堆的开发板摆在面前的时候,不禁思考这些东西到底代表什么,细细数来,不过是性能更强,功能更丰富,从裸机编程到RTOS的应用,再到Linux以及Windows的开发和使用,从IIC、UART、SPI、CAN、USB、以太网等等不同的通信协议,物理层和数据链路层的协议,以及TCP/IP协议栈,蓝牙、WIFI协议栈,以及不同的用于通信的电平标准RS232、RS485等,用于视频传输的HDMI、DVI接口以及数据链路层协议TDMS,采用不同的码元,不同的时序,不同的接口,便组成了各种各样用于不同用途的协议。
    IIC:半双工通信(同一时间只能发或者收),总线型连接方式,支持多主机模式,谁能拿捏时钟线便是主机,属于同步串行通信,通信速率在100k、400k乃至3.8M(没见过3.8M的只见过1M的铁电存储器用IIC),在物理接口上有两根线SDA以及SCL,因为带有时钟线所以对通信周期的误差并没有太多要求,速率也比异步通信高多了,采用非归零编码,时钟线的高电平期间有下降沿为起始信号,上升沿为停止信号,保持高电平为1,保持低电平为0,由这些便构成了IIC。
    SPI:全双工通信(同一时间既可以发也可以收),一对一连接、一对多或者采用菊花链的方式连接,单主机模式,属于同步串行通信,通信速率可以很高到几M具体看通信双方,采用四根线SCLK、MOSI、MISO、CS连接一根时钟线两根数据线,一根片选线,支持多种数据传输模式,其实就是在时钟信号的什么时候对数据信号进行采样罢了。
    UART:全双工通信,一对一连接,异步串行通信(指没有时钟线),对通信过程中的双方时序精度要求相对于IIC、SPI要求高很多,一般用于低速通信,调试信息输出很方便,双方约定通信波特率,实际上就是一个位的时间,空闲时线上保持高电平,发0表示起始位,然后就是约定好的数据位奇偶校验位可有可无吧,再发1表示停止位,这样一次通信就完成了,两根线RX、TX,高电平表示1,低电平表示0,通信速度不能过快。
    CAN:异步串行通信,由CAN收发器和CAN控制器组成,总线型连接,采用差分信号输出,CAN高和CAN低,通过仲裁段来保证总线信号的优先级,仲裁段CAN拓展帧29bit,标准帧11bit,支持不同的通信速度最高可到1MHZ,有错误检测和恢复机制,采用CRC校验码,有不同的帧格式用于不同的用途。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值