現有的外設接口的優缺點:
電路連接都是有VCC,GND兩根電源線的,后面不再贅述了。應用的外設都局限在板載的一些低速低通信量芯片或模塊,高性能或特殊需求的外設接口和此文無關。
單線總線(1-wire)
如18B20,硬件鏈接只需一根數據線,非常簡單,但在編程和CPU效率上卻很不理想,沒有中斷通知,通訊速率很低,而且在一個完整訪問周期內不允許被中斷。
I2C總線
I2C 接口的EEprom,只需要I2C兩根接線,cpu主動讀寫數據。
I2C 接口的 溫濕度傳感器芯片,只需要I2C兩根接線,需要cpu主動查詢。
I2C 接口的多軸重力加速度傳感器,除了I2C兩根接線外還需要一根中斷線通知CPU狀態有變化。
I2C 接口的觸摸屏,除了I2C兩根接線外還需要一根中斷線,一根復位/喚醒線。
通信速率較低,可以掛接多個從設備。總的來講I2C接口還是比較簡潔的,編程也不太復雜。
SPI總線
SPI接口的無線模塊,SPI 4根線,一根中斷線,一根復位/喚醒線,共計6根線。
SPI接口通信速率較高,但鏈接線數較多,尤其在掛接多個從設備時,每多一個設備都要多一條片選線和中斷線。另外SPI接口雖然是全雙工接口,可到目前為止我還從來沒見過使用全雙工的情況。
串口
Uart接口的從器件,自帶收發中斷,一般就收發兩根線,為異步通信,通信速率低距離較短,為兩主機對話模式,作為從機接口的話,編程相對復雜。
USB總線
差分兩線鏈接,硬件鏈接很簡單,速率高,距離遠,但芯片實現復雜,軟件協議也很復雜,不適用于板載的低成本低功耗低復雜度從屬器件。
雖然I2C,SPI總線都是可掛接多個從設備,但實際開發中大多數都是只掛一個從設備;即使真得要掛接多個從設備,在軟硬件設計上也要多加小心,系統魯棒性不是很好。另外實現中斷通知,復位喚醒還需要借助額外的gpio引腳連接和中斷響應處理,不夠簡潔。
而且有SPI,Uart還有多種硬件鏈接上的擴展或變體,使得軟硬件設計不好統一處理。
基于以上情況,個人構想(不著邊際,胡思亂想)這樣一種從設備總線,適用于通信量不是很大(幾字節到幾K字節),速率要求不高(100K~100Mbps),距離不是很遠(1~100cm),有中斷通知,休眠喚醒,硬件復位等操作需求的情況。主要是在I2C總線基礎上實現,命名為
TWI(tow wire interface)
特性如下:
1. 只需兩根線,3.3V TTL電平,不需要額外擴展硬件線路,鏈接簡單易實現。簡潔統一的電路接口,標準易擴展的報文協議。
2. 只接一個從設備,免去了片選信號或地址字段,消除了總線競爭會引發的各種異常,因而大幅簡化了芯片和軟件復雜度。
3. 為同步傳輸方式,類似I2C總線,一根時鐘線,一根數據線。相比于異步傳輸抗干擾強,通信速率高。即便用gpio模擬該總線,在通信中因CPU中斷響應而拉長比特位也不影響傳輸準確性。
4. 時鐘線由主機推挽輸出,從機為輸入端,空閑時為高電平,如果芯片處于休眠狀態,時鐘線置低能喚醒從機。
數據線為半雙工方式,主從都可為輸入模式,或開漏輸出模式,需要外部電阻上拉,所以空閑時也為高電平。在空閑狀態下,如果從器件有消息通知主機,可以發送一個低電平脈沖,這時主機中斷響應,待數據線被從機釋放恢復高電平后,主機方可發送數據。
在通信過程中如果從機出現忙碌,故障等問題也可一直保持數據線拉低,主機則一直等到從機釋放數據線后,才可繼續通信,查詢從機狀態。
5. 通信以字節為單位,每字節8位,高位先出。每次通信必須為一個完整報文,報文格式固定但長度不定。
通信中每發一字節不需要有應答過程,I2C每收發一字節都有一個應答過程,這會使得芯片電路和軟件實現變得復雜,同時也影響通信速率。SPI就沒有校驗位,校驗可以在報文收發完成后整體校驗。
6.每個從機都有一個最多128字節的寄存器組,報文通信就是讀取或改寫這一組寄存器值。電路上通過移位寄存器便可以實現。
對于一般的傳感器或控制器,這最大的128個字節足夠一個報文就傳輸足夠多的信息。對于加大數據訪問量的芯片則需要通過寄存器間接訪問了。如對于存儲類芯片則不夠,可以先一個短報文設定內存訪問地址,后一個起始地址設為127,讓首字節自后的數據訪問內存。SPI接口的無線模塊很多就是類似這樣的方式。
7.報文的首字節高7位為寄存器地址(0~127),最低位為讀寫控制位(0為寫1為讀),表明第二字節從哪一個寄存器開始讀寫。
如果報文首字節為0,即表示要從0寄存器開始寫,從機要忽略后面的數據,當數據長度大于等于4字節時,從機要進行硬件復位,復位后處于接收模式,等待主機命令。所以從機的0號寄存器應當不分配其他功能位。
與I2C相比是
去掉了起始位,停止位處理
去掉應答
去掉多主機多從機情況
去掉報文10位設備地址的情況
增加寄存器地址段
增加硬件喚醒復位功能
增加中斷觸發功能
與SPI相比是
去掉了片選信號
將收發兩線合并成一線
SPI的4種電平相位模式統一為一種
增加硬件喚醒復位功能
增加中斷觸發功能
可以看做是I2C與SPI總線的結合體變種,電路連接類似于I2C,而字節傳輸協議和芯片實現方式類似于SPI,但軟硬件實現起來都更簡潔。
-
USB總線
+關注
關注
1文章
70瀏覽量
37004 -
SPI總線
+關注
關注
4文章
103瀏覽量
27608 -
I2C總線
+關注
關注
8文章
391瀏覽量
61029 -
TWI總線
+關注
關注
0文章
5瀏覽量
9565 -
外設接口
+關注
關注
0文章
9瀏覽量
8199
原文標題:一種新型外設接口的構想
文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論