嵌入式產品:通信方式

常見通信方式: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. 如果數據處理或發送的數據的時間比較長,則放入新的線程中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章