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