SPI接口基礎上的各種串行通信工作方式配置及驅動(dòng)編程
圖4中2號機SPI通信和UART通信皆為Slaver方式,由于SPI、UART共用一個(gè)中斷,會(huì )導致通信工作過(guò)程不正常,嚴重時(shí)SPI和UART通信皆無(wú)法正常進(jìn)行。上述協(xié)議無(wú)法滿(mǎn)足需要。為此,在基本協(xié)議的基礎上,構造高級的協(xié)議。
高級協(xié)議:主機和從機皆用定時(shí)器進(jìn)行SPI數據幀的收發(fā),定時(shí)器是SPI通信的發(fā)動(dòng)機,通信是由主機定時(shí)器發(fā)動(dòng)。從機僅被動(dòng)收發(fā),為了保證SPI收發(fā)雙方數據包的字節相位匹配,必須設置數據包收發(fā)緩沖區,收發(fā)緩沖區字節個(gè)數應當是數據包的N倍。同時(shí),數據包中設置若干包標示字節,通常為頭字節、尾字節,以便主從機在接收數據時(shí)可以動(dòng)態(tài)的進(jìn)行字節相位的校準,保證數據接收的可靠性。高級協(xié)議構造示意圖如圖5所示。
圖5中,SPI通信數據包為8個(gè)字節,包標識字節為0x0d、0x0c。SPI通信發(fā)動(dòng)采用PCA定時(shí)器模式,讀者也可以采用定時(shí)器T1和T2實(shí)現SPI通信發(fā)動(dòng)。參考程序如下:
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
評論