單片機(jī)通信協(xié)議有哪一些常用的
在單片機(jī)的應(yīng)用中,通信協(xié)議是必不可少的一部分,上位機(jī)與下位機(jī),單片機(jī)與單片機(jī),單片機(jī)與外設(shè)模塊之間的通信都需要通信協(xié)議實(shí)現(xiàn)信息交換和資源共享。由于設(shè)備之間不同的傳輸速率、電氣特性、可靠性要求的不同,產(chǎn)生了許多類型的適用于不同情況的通信協(xié)議,并被廣泛接受和使用。主要有以下幾種:
淺析六種常用的單片機(jī)通信協(xié)議
一、UART和USART
分別名為通用異步收發(fā)器和通用同步異步收發(fā)器(具體后文會(huì)進(jìn)行詳解),速率不快,可全雙工,結(jié)構(gòu)上一般由波特率產(chǎn)生器、UART/USART發(fā)送器、UART/USART接收器組成,硬件上兩線,一收一發(fā)。
二、I2C(IIC)
雙向、兩線、串行、多主控接口標(biāo)準(zhǔn)。速率不快,半雙工,同步接口,具有總線仲裁機(jī)制,非常適合器件間近距離經(jīng)常性數(shù)據(jù)通信,可實(shí)現(xiàn)設(shè)備組網(wǎng)。
總線仲裁:線與,誰發(fā)0就仲裁成功。
三、SPI
高速同步串行口,高速,可全雙工,收發(fā)獨(dú)立,同步接口,可實(shí)現(xiàn)多個(gè)SPI設(shè)備互聯(lián),硬件3~4線;也是所有基于SPI的設(shè)備公共有的,他們是SDI(數(shù)據(jù)輸入),SDO(數(shù)據(jù)輸出),SCK(時(shí)鐘),CS(片選)。
四、USB
高速同步串行口,高速,可全雙工,由主機(jī)、hub、設(shè)備組成。設(shè)備可以與下級(jí)的hub相連構(gòu)成星型結(jié)構(gòu)。一條USB的傳輸線分別由地線、電源線、D+、D-四條線構(gòu)成,D+、D-是差分輸入線,它使用的是3.3V的電壓。數(shù)據(jù)在USB線里傳送是由低位到高位發(fā)送的。
五、CAN
采用雙線傳輸,兩根導(dǎo)線分別作為CAN_H、CAN_L,并在終端配備有120Ω的電阻。收到總線信號(hào)時(shí),CAN收發(fā)器將信號(hào)電平轉(zhuǎn)化為邏輯狀態(tài),即CAN_H與CAN_L電平相減后,得到一個(gè)插值電平。各種干擾在兩根導(dǎo)線上的作用相同,相減后的插值電平可以濾過這些干擾。
六、DMA
DMA是指外部設(shè)備不通過CPU而直接與系統(tǒng)內(nèi)存交換數(shù)據(jù)的接口技術(shù)。這樣數(shù)據(jù)的傳送速度就取決于存儲(chǔ)器和外設(shè)工作速度。
通常系統(tǒng)總線是由CPU管理的,在DMA方式時(shí),就希望CPU把這些總線讓出來,即CPU連到這些總線上的線處于第三態(tài)(高阻狀態(tài)),而由DMA控制器接管,控制傳送的字節(jié)數(shù),判斷DMA是否結(jié)束,以及發(fā)出DMA結(jié)束信號(hào)。