有不少的MCU設(shè)備的USART的介紹那里寫的支持IrDA和LIN的相關(guān)功能。那他們是什么關(guān)系。
IrDA
IrDA是國(guó)際紅外數(shù)據(jù)協(xié)會(huì)的英文縮寫,IrDA相繼制定了很多紅外通信協(xié)議。
IrDA1.0協(xié)議基于異步收發(fā)器UART,最高通信速率在115.2kbps,簡(jiǎn)稱SIR(Serial Infrared,串行紅外協(xié)議),采用3/16 ENDEC編/解碼機(jī)制。
IrDA1.1協(xié)議提高通信速率到4Mbps,簡(jiǎn)稱FIR(Fast Infrared,快速紅外協(xié)議),采用4PPM (Pulse Position Modulation,脈沖相位調(diào)制)編譯碼機(jī)制,同時(shí)在低速時(shí)保留1.0協(xié)議規(guī)定。
之后,IrDA又推出了最高通信速率在16Mbps的協(xié)議,簡(jiǎn)稱VFIR(Very Fast Infrared,特速紅外協(xié)議)。
以STM32F7舉例,只能支持IrDA1.0協(xié)議。控制器做的就是波形轉(zhuǎn)換。如下圖:
通過串口發(fā)送數(shù)據(jù),控制器轉(zhuǎn)換成IrDA相應(yīng)的波形,再通過外接的驅(qū)動(dòng)器、LED發(fā)射出去。接收也一樣。接收信號(hào),解碼接收。
可以看出:IrDA1.0協(xié)議使用的就是UART這個(gè)接口發(fā)出的一種波形(如上圖的波形),鏈路層使用的是UART。
LIN
LIN(Local Interconnect Network)總線是基于UART/SCI(通用異步收發(fā)器/串行接口)的低成本串行通訊協(xié)議。
這是一個(gè)一主多從的協(xié)議;采用的是單線傳輸形式,總線電平一般為12V,傳輸速率最高限制為20kbps。由于物理層的限制,一個(gè)LIN網(wǎng)絡(luò)最多可以連接16個(gè)節(jié)點(diǎn)。
最終發(fā)出的波形如下
可以看出在不考慮具體傳輸數(shù)據(jù)協(xié)議的時(shí)候,與普通的串口區(qū)別在于幀頭(同步間隔、同步段、PID段)的不同。這個(gè)就是MCU控制器主要去做的。
可以看出:LIN協(xié)議使用的就是UART這個(gè)接口發(fā)出的一種波形(如上圖的波形),鏈路層使用的是UART。
區(qū)別和聯(lián)系
IrDA1.0和LIN都會(huì)使用UART發(fā)出一種波形,這兩種波形的鏈路層相同(物理層和其余上層協(xié)議不同),使用的UART。