在電子設(shè)備的運(yùn)行中,總線起著連接各個部件、實(shí)現(xiàn)數(shù)據(jù)傳輸和通信的關(guān)鍵作用。下面將詳細(xì)介紹幾種常見的總線,包括 IIC、IIS、SPI、UART、JTAG、CAN、SDIO 和 GPIO。
IIC 總線是由 PHILIPS 公司開發(fā)的兩線式串行總線,主要用于連接微控制器及其外圍設(shè)備。它采用 OD(Open Drain,開漏)輸出,大部分 IIC 總線由時鐘線和數(shù)據(jù)線兩條線構(gòu)成,通常用于傳輸控制信號。其工作模式為在微控制器和外部設(shè)備之間進(jìn)行串行通訊,或者在主設(shè)備和從設(shè)備之間實(shí)現(xiàn)雙向數(shù)據(jù)傳送。例如,在一些智能家電的控制板中,IIC 總線可用于連接主控芯片和各種傳感器,實(shí)現(xiàn)對傳感器數(shù)據(jù)的讀取和控制信號的傳輸。
IIS 是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸制定的總線標(biāo)準(zhǔn)。它有三個主要信號:
- 串行時鐘 SCLK:也叫位時鐘,對應(yīng)數(shù)字音頻的每一位數(shù)據(jù),SCLK 會產(chǎn)生一個脈沖。
- 幀時鐘 LRCK:用于切換左右聲道的數(shù)據(jù)。當(dāng) LRCK 為 “1” 時,表示正在傳輸左聲道的數(shù)據(jù);為 “0” 時,則表示正在傳輸右聲道的數(shù)據(jù)。
- 串行數(shù)據(jù) SDATA:是以二進(jìn)制補(bǔ)碼表示的音頻數(shù)據(jù)。此外,為了使系統(tǒng)間更好地同步,還可能會傳輸一個主時鐘 MCLK,也稱為系統(tǒng)時鐘(Sys Clock)。在音頻播放器、音響設(shè)備等中,IIS 總線被廣泛應(yīng)用于音頻數(shù)據(jù)的傳輸,確保高質(zhì)量的音頻播放。
SPI 是 Motorola 首先在其 MC68HCXX 系列處理器上定義的。它主要應(yīng)用在 EEPROM、FLASH、實(shí)時時鐘、AD 轉(zhuǎn)換器,以及數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI 接口以主從方式工作,通常有一個主器件和一個或多個從器件。其接口包含四種信號:
- MOSI:主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入。
- MISO:主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出。
- SCLK:時鐘信號,由主器件產(chǎn)生。
- /SS:從器件使能信號,由主器件控制。在一些嵌入式系統(tǒng)中,SPI 總線可用于連接主控制器和外部存儲設(shè)備,實(shí)現(xiàn)快速的數(shù)據(jù)讀寫操作。
UART 的主要功能是將計算機(jī)內(nèi)部的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流,同時將計算機(jī)外部的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié)供內(nèi)部使用并行數(shù)據(jù)的器件使用。它還會在輸出的串行數(shù)據(jù)流中加入奇偶校驗位,并對從外部接收的數(shù)據(jù)流進(jìn)行奇偶校驗;在輸出數(shù)據(jù)流中加入啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記。此外,UART 還能處理鍵盤或鼠標(biāo)發(fā)出的中斷信號,以及計算機(jī)與外部串行設(shè)備的同步管理問題。一些的 UART 還提供輸入輸出數(shù)據(jù)的緩沖區(qū)。常用的引腳有 TXD、RXD、/RTS、/CTS。在計算機(jī)與串口設(shè)備(如串口打印機(jī)、串口傳感器等)的通信中,UART 發(fā)揮著重要作用。
JTAG 是一種國際標(biāo)準(zhǔn)測試協(xié)議(IEEE1149.1 兼容),主要用于芯片內(nèi)部測試。標(biāo)準(zhǔn)的 JTAG 接口有四條線:TMS(模式選擇)、TCK(時鐘)、TDI(數(shù)據(jù)輸入)和 TDO(數(shù)據(jù)輸出),測試復(fù)位信號(TRST,一般以低電平有效)通常作為可選的第五個端口信號。對于含有 JTAG Debug 接口模塊的 CPU,只要時鐘正常,就可以通過 JTAG 接口訪問 CPU 的內(nèi)部寄存器和掛在 CPU 總線上的設(shè)備,如 FLASH、RAM、內(nèi)置模塊的寄存器(如 UART、Timers、GPIO 等)。在芯片的生產(chǎn)測試和調(diào)試過程中,JTAG 總線是不可或缺的工具。
CAN 全稱為 “Controller Area Network”,即控制器局域網(wǎng),是國際上應(yīng)用廣泛的現(xiàn)場總線之一。初,CAN 被設(shè)計用于汽車環(huán)境中的微控制器通訊,在車載各電子控制裝置 ECU 之間交換信息,形成汽車電子控制網(wǎng)絡(luò)。例如,發(fā)動機(jī)管理系統(tǒng)、變速箱控制器、儀表裝備、電子主干系統(tǒng)中,都嵌入了 CAN 控制裝置。在一個由 CAN 總線構(gòu)成的單一網(wǎng)絡(luò)中,理論上可以掛接無數(shù)個節(jié)點(diǎn),但實(shí)際應(yīng)用中,節(jié)點(diǎn)數(shù)目受網(wǎng)絡(luò)硬件的電氣特性限制。例如,當(dāng)使用 Philips P82C250 作為 CAN 收發(fā)器時,同一網(wǎng)絡(luò)中允許掛接 110 個節(jié)點(diǎn)。CAN 可提供高達(dá) 1Mbit/s 的數(shù)據(jù)傳輸速率,便于實(shí)現(xiàn)實(shí)時控制,并且其硬件的錯誤檢定特性增強(qiáng)了抗電磁干擾能力。在工業(yè)自動化、智能交通等領(lǐng)域,CAN 總線也有廣泛的應(yīng)用。
SDIO 是 SD 型的擴(kuò)展接口,除了可以連接 SD 卡外,還能連接支持 SDIO 接口的設(shè)備。支持 SDIO 接口的 PDA、筆記本電腦等可以連接 GPS 接收器、Wi - Fi 或藍(lán)牙適配器、調(diào)制解調(diào)器、局域網(wǎng)適配器、條形碼讀取器、FM 無線電、電視接收器、射頻身份讀取器或數(shù)碼相機(jī)等采用 SD 標(biāo)準(zhǔn)接口的設(shè)備。這使得設(shè)備的功能擴(kuò)展更加方便,例如,在一些平板電腦上,通過 SDIO 接口可以連接無線網(wǎng)卡,實(shí)現(xiàn)無線網(wǎng)絡(luò)的接入。
GPIO(通用輸入 / 輸出)或總線擴(kuò)展器利用工業(yè)標(biāo)準(zhǔn) I2C、SMBus?或 SPI?接口簡化了 I/O 口的擴(kuò)展。當(dāng)微控制器或芯片組沒有足夠的 I/O 端口,或者系統(tǒng)需要采用遠(yuǎn)端串行通信或控制時,GPIO 產(chǎn)品能夠提供額外的控制和監(jiān)視功能。每個 GPIO 端口可通過軟件分別配置成輸入或輸出。在一些小型的嵌入式系統(tǒng)中,GPIO 端口可用于連接一些簡單的外設(shè),如 LED 燈、按鍵等,實(shí)現(xiàn)對外設(shè)的控制和狀態(tài)的讀取。