嵌入式产品:通信方式

常见通信方式:SBUS/UART/I2C/SPI/USB/PPM/JTAG/CAN/MIDI/RS-232/RS-485

同步与异步

同步:有时钟信号,每个时钟发一位数据(时钟的频率和每一位数据对应)
异步:没有时钟信号,有数据起始位/停止位,从数据起始位开始间隔一定的时间取信号

串行与并行

串行:一位位发,先发低字节
并行:一次性发送

UART

异步串行(先发低字节)
接口:TXD/RXD
速度:一般9600个比特位每秒,即每秒传输9600/8=1200字节
数据长度:8位
起始位:高变低
停止位:低变高
优点:距离长
缺点:速度慢

IIC(inter-integrated circuit)

同步串行(飞利浦)
接口:SCL/SDA
频率:时钟
数据长度:多个字节
多主多从:发从机地址,再发数据,这样对应地址的从机才发送到缓存
优点:线少
缺点:速度慢

SPI(serial peripheral interface)

同步串行(摩托罗拉)
接口:sclk/mosi(master out slaver inout)/miso/ss
一主多从:通过片选使能来确定(高边低)
优点:全双工,速度快250Mbps(bit per second)
缺点:线多/距离短

高效通信

1. 不要使用死循环+read+sleep,这会导致断包和粘包。如果一定要这么做就用缓冲数组,把读到的数据存到数组,再对数组进行分包。
2. 比较好的办法是在线程中用select对不同设备的文件句柄进行监听可读/可写/异常,这样只用一个线程就可以对文件句柄进行监控,避免开启多个线程。使用select要注意:每次都要重新设置阻塞时间,重新设置监听的文件句柄集合,select的句柄是最大文件句柄+1。
3. 如果数据处理或发送的数据的时间比较长,则放入新的线程中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值