新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于SPI總線的51單片機(jī)多機(jī)互連編程技術(shù)

        基于SPI總線的51單片機(jī)多機(jī)互連編程技術(shù)

        作者: 時間:2012-08-21 來源:網(wǎng)絡(luò) 收藏

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

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

        d.JPG


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

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

        a.JPG


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



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 瑞昌市| 锦州市| 磐石市| 益阳市| 澄城县| 内乡县| 河北区| 浦县| 和平区| 沾益县| 门头沟区| 黎城县| 鲁山县| 胶州市| 靖西县| 同心县| 融水| 延川县| 宜章县| 宜兴市| 修武县| 惠安县| 台南县| 云阳县| 榆树市| 兴仁县| 桂林市| 崇明县| 贵德县| 德安县| 丹凤县| 新巴尔虎右旗| 新乐市| 昌乐县| 永宁县| 平泉县| 德化县| 青神县| 湄潭县| 手游| 三门县|