劉興華 李加寧 李信
摘 要:電子元件及芯片種類的多樣化和集成化導致芯片之間需要頻繁的通信,芯片之間的通信也是電子信息科學與技術發展的必然方向,而通信就必然會涉及協議,也就是通信的數據的格式,就像人與人之間溝通必須要使用同一種語言一樣,在多元化的今天必然會有幾大主流通信協議應用在不同的場合,那么這幾大主流的通信協議都有什么呢?
關鍵詞:通信協議;芯片;總線
0 引言
隨著現代社會的快速發展,電子信息技術也飛速進步,以往的功能單一,運行卡頓的電子設備早已無法滿足人們對電子產品日益整漲的需求。而使用單一IC注定無法研發出功能復雜的電子產品,這使得大規模集成IC應運而生,而多片芯片之間必然會有數據的傳輸進行協同處理用戶的數據,而這就使得各種通訊協議產生了。
1 SPI
SPI(Serial Peripheral Interface)是串行外設接口的縮寫,是一種高速的,全雙工,同步的通信總線。SPI在芯片的管腳上只占用四根線,節約日益寶貴的芯片的管腳,同時也為PCB的布局上節省空間,提供了方便,正是出于這種簡單易用的特性,如今很多的芯片集成了這種通信協議。有的芯片提供了SPI片上外設,但有時這種外設不是很穩定,有時也采用軟件模擬SPI的方式,即編程不斷改變引腳狀態來模擬SPI的時序達到通信的目的。
SPI的通信原理很簡單,它采用主從方式工作,這種模式通常有一個主設備和一個或多個從設備,通常需要至少4根線,而有時3根也可以進行數據傳輸(當單向傳輸時)。四根線是所有基于SPI的設備共有的,它們分別是SDI(數據輸入)、SDO(數據輸出)、SCLK(時鐘)、CS(片選)。其中,CS是控制芯片是否被選中的,也就是芯片的使能線。它允許在同一總線上連接多個SPI設備成為可能。剩下的就負責通訊的3根線了。數據的輸入輸出線負責傳輸數據,時鐘線則控制主從設備讀取或者發送數據的時機。
2 UART
通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種異步收發傳輸器,是電腦硬件的一部分。通常是將數據由串行通信與并行通信間作傳輸轉換,作為并行輸入成為串行輸出的芯片,通常集成于其他通訊接口的連結上。
具體實物表現為獨立的模塊化芯片,或作為集成于微處理器中的外設。一般采用RS232協議,采用類似Maxim公司的MAX232之類的標準信號幅度變換芯片進行搭配,作為連接外部設備的接口。
UART作為異步串口通信協議的一種,工作原理是將傳輸數據的每個字符一位接一位地傳輸,各位的意義如下:
起始位:顧名思義,一幀數據的開始。數據位:緊接著起始位之后,通常采用ASCII碼。從最低位開始傳送。奇偶校驗位:數據位加上這一位來校驗資料傳送的正確性。停止位:它是一個字符數據的結束標志,一般是一段時間的高電平。 由于數據是在數據線上定時傳輸的,并且每一個設都有其自己的時鐘,很可能在通信中兩設備間出現了不同步。因此停止位更多的作用是提供計算機校正時鐘使兩臺設備同步的。
3 I2C
I2C(Inter-Integrated Circuit)總線是PHILIPS公司開發的兩線式串行總線,用于連接微控制器及各種常用外圍設備,是微電子通信控制領域目前正在廣泛采用的一種總線標準。它是同步通信的一種特殊的形式,具有接口連接線少,控制簡單,器件封裝形式小,通信速率較高等優點。I2C 協議通過串行數據線(SDA)和串行時鐘線 (SCL)在連接到總線的器件間傳遞信息。每個器件都有一個唯一的地址識別(微控制器——MCU、LCD 驅動器、存儲器或鍵盤接口等等常見外圍電路),而且每個外設都可以作為數據的發送者或者是數據的接收者(這由器件的功能決定)。例如常見的LCD 驅動器只能作為接收器,而存儲器則既可以接收又可以發送數據。除了數據發送器和數據接收器以外,器件在執行數據傳輸時分為主機和從機。主機是指實現初始化總線的數據傳輸產生允許傳輸的時鐘信號的器件。此時,任何被主機尋址的器件都被認為是從機。任何一個芯片都可以被認為是主機或者從機。
4 CAN
CAN(Controller Area Network, CAN)是控制器局域網絡的簡稱,是由以研發和生產汽車電子產品著稱的德國BOSCH公司開發的,并成為了國際標準(ISO 11898),是目前國際上應用最廣泛的現場總線之一。 在北美和西歐的大多數國家,CAN總線協議已經成為車載電子系統和工業嵌入式電子控制局域網的標準總線,并且衍生了以CAN總線協議為底層協議圣物專為大型貨車和重工機械車輛設計的J1939協議。
目前CAN 的高性能和可靠性已被大多數電子工作者認同,并被廣泛地應用于工業自動化、醫療設備、工農業設備等多個方面。CAN總線是當今電子領域技術發展最快的熱點之一,被譽為電子領域的局域網。
5 區別與聯系
當然,除了上面說到的各種協議,還有類似于DS18B20采用的單總線通信的多種多樣的通信方式,各大通訊協議各有各的優點,各有各的缺點。I2C線更少,比UART、SPI、CAN更為強大,但是技術上也更加麻煩些,因為I2C需要有雙向IO的支持,而且需要使用上拉電阻,抗干擾能力較弱,一般用于同一板卡上芯片之間的通信,不方便用于遠距離通信。SPI實現要簡單一些,而UART需要固定的波特率,就是說兩位數據的間隔要相等,而SPI則無所謂,因為它是有時鐘的協議。I2C的速度比SPI和低頻穩定情況下的UART慢一點,協議要比SPI復雜一點,但是連線也比標準的SPI要少。
但無論哪種協議,既然在高速發展的今天得到了廣泛的使用,就說明必然有它得到大家認可的原因,學習電子知識可以說電子元件之間的通信是基礎中的基礎。在未來,一定還會有更多更加優秀的協議誕生,讓芯片之間的通信越來越快,越來越穩定,讓大家的電子產品更加完美。
參考文獻:
[1] 黃繼昌.電子元器件應用手冊[M].北京:人民郵電出版社,2004.
[2] 徐英慧.ARM9嵌入式系統設計[M].北京航空航天大學出版社,2015.
作者簡介:劉興華(1994—),男,遼寧調兵山人,沈陽理工大學學生。
李加寧(1996—),男,遼寧遼陽人,沈陽理工大學學生。
李信(1996—),男,甘肅定西人,沈陽理工大學學生。