新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于SPI總線的51單片機多機互連編程技術

        基于SPI總線的51單片機多機互連編程技術

        作者: 時間:2012-08-21 來源:網絡 收藏

        圖2中,筆者設計的基本協議如下:的工作模式是主機用PCA定時器進行數據連續發、收,從機用串行中斷進行數據連續收、發。建立收發數據包,每個數據包8個字節,主從機均建立一個8個字節的發送數據緩沖區(spi send buf[8])和一個8個字節的接收數據緩沖區(spi_re cv_buf[8]),并建立一個完整數據包接收完畢標志(spi_recv_flag)。當用戶需要發送數據時,隨時可以將發送數據包填入發送緩沖區,當需要接收數據時,隨時測試接收標志是否置傳,這樣從接收數據緩沖區中得到對方發來的數據包。按照上述協議,接口設置好以后,用戶的數據收發只要面對本協議設置的通信緩沖區,而無需關注接口如何工作。從而滿足數據雙向傳輸、隨機收發的要求。基本協議構造示意圖如圖3所示。

        本文引用地址:http://www.104case.com/article/171013.htm

        d.JPG


        注意:筆者主機顯示設備為LCD12864,從機顯示設備為8個數碼管,為縮短篇幅,其顯示驅動程序未列出。從程序中可以看出,SPI接口在發送一個字節的同時,接收一個字節,這是SPI與其他串行通信方式本質的不同。此外,筆者在接近1 MHz的極限速率下作了測試,數據傳輸穩定。

        3 高級協議的設計和實現
        基本協議較簡單,可以保證通信雙方能夠可靠地進行數據傳輸,但上述協議的實現依賴于從機中斷方式。而SPI中斷與UART串行中斷共用,當從機串行口用于其他通信時,就要避免通信中斷的相互干擾。復雜電子系統通信配置圖如圖4所示。

        a.JPG


        圖4中的串口只是數據發送,而無需接收數據,串行通信也只需單向數據傳輸。采用查詢方式,不占用中斷,串行4號中斷用于SPI通信。因此,可以用SPI基本協議完成雙機通信功能。若電子系統與上位機之間有信息交互的要求,并且收發數據皆為隨機,此時系統通信的配置模式如圖4所示。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 于都县| 册亨县| 繁峙县| 邢台市| 苗栗市| 大方县| 红河县| 南开区| 无锡市| 张掖市| 长岭县| 新密市| 大冶市| 五指山市| 东乡族自治县| 长葛市| 长寿区| 昌邑市| 安阳市| 集贤县| 辽阳县| 黔西| 雷波县| 西华县| 友谊县| 托克逊县| 剑川县| 弋阳县| 山东| 夹江县| 蒙城县| 彭阳县| 苍山县| 延安市| 准格尔旗| 双牌县| 威信县| 娱乐| 烟台市| 宣恩县| 平远县|