新聞中心

EEPW首頁 > 網(wǎng)絡(luò)與存儲(chǔ) > 設(shè)計(jì)應(yīng)用 > SPI接口與CRC算法在雙DSP數(shù)據(jù)通信中的應(yīng)用

SPI接口與CRC算法在雙DSP數(shù)據(jù)通信中的應(yīng)用

作者: 時(shí)間:2011-02-27 來源:電子產(chǎn)品世界 收藏

  摘要:提出了一種基于DSP28335片上模塊和校驗(yàn)算法的數(shù)據(jù)通信方案。給出了接口電路設(shè)計(jì)、模塊驅(qū)動(dòng)程序設(shè)計(jì)和求取校驗(yàn)碼的具體步驟,重點(diǎn)介紹了通信協(xié)議中從機(jī)發(fā)送請(qǐng)求機(jī)制和錯(cuò)誤幀重發(fā)機(jī)制的實(shí)現(xiàn),解決了從機(jī)不能發(fā)起傳輸?shù)膯栴},并提高了通信雙方的差錯(cuò)檢測(cè)能力。實(shí)驗(yàn)結(jié)果表明,該方案數(shù)據(jù)傳輸速度快,可靠性高,滿足飛控計(jì)算機(jī)的性能要求。

本文引用地址:http://butianyuan.cn/article/117273.htm

  關(guān)鍵字:SPI;;TMS320F28335;雙核通信;差錯(cuò)檢測(cè)在基于雙DSP架構(gòu)的某型飛控計(jì)算機(jī)系統(tǒng)中,兩片DSP分工協(xié)作,1片專用于導(dǎo)航信息的解算和傳感器信息的綜合處理,另1片專用于控制律解算和機(jī)載任務(wù)設(shè)備管理。借助雙DSP強(qiáng)大的處理能力和豐富的片上資源,實(shí)現(xiàn)了電路結(jié)構(gòu)的簡(jiǎn)化和DSP芯片的降額使用,滿足飛控系統(tǒng)高性能、高可靠性的設(shè)計(jì)要求。

  雙DSP的分工協(xié)作離不開二者之間高效、可靠的數(shù)據(jù)通信。本系統(tǒng)最終選用SPI通信方式實(shí)現(xiàn)雙DSP間的數(shù)據(jù)傳輸。

  系統(tǒng)概述

  系統(tǒng)總體結(jié)構(gòu)

  圖1給出了雙DSP架構(gòu)飛控計(jì)算機(jī)的結(jié)構(gòu)示意圖。導(dǎo)航DSP完成導(dǎo)航信息的解算和傳感器信息的綜合處理,并將處理結(jié)果送至飛控DSP;飛控DSP據(jù)此完成控制律解算,并刷新舵面給定信息,實(shí)現(xiàn)無人機(jī)飛行姿態(tài)和航跡的實(shí)時(shí)調(diào)整。導(dǎo)航DSP和飛控DSP還要共同完成機(jī)載任務(wù)設(shè)備和離散量設(shè)備的管理,完成飛行任務(wù)。雙DSP均選用TI公司面向控制領(lǐng)域的高性能浮點(diǎn)型數(shù)字信號(hào)處理器TMS320F28335。

  TMS320F28335片上SPI模塊遵循標(biāo)準(zhǔn)的SPI通信協(xié)議[3],并具如下增強(qiáng)特性:有4種時(shí)鐘模式可供選擇,兼容各種不同時(shí)序特性的SPI設(shè)備;通信波特率有125種設(shè)置方案可供選擇,在DSP全速工作時(shí),速率達(dá)10Mbits/s以上;發(fā)送和接收均有16級(jí)FIFO可用,能夠?qū)崿F(xiàn)16字?jǐn)?shù)據(jù)的連續(xù)發(fā)送/接收,減輕了CPU負(fù)擔(dān);發(fā)送和接收均支持中斷方式,實(shí)時(shí)性高[7]。

  SPI接口電路設(shè)計(jì)

  接口電路設(shè)計(jì)如圖2所示。其中SPISTE為從機(jī)使能信號(hào), SPISIMO為主機(jī)發(fā)往從機(jī)的串行數(shù)據(jù)信號(hào), SPISOMI為從機(jī)發(fā)往主機(jī)的串行數(shù)據(jù)信號(hào), SPICLK為同步時(shí)鐘信號(hào)。以上信號(hào)構(gòu)成SPI通信協(xié)議所規(guī)定的4線制結(jié)構(gòu)。另外,利用主機(jī)和從機(jī)的各3個(gè)I/O引腳作為握手信號(hào),解決了SPI總線中從機(jī)無權(quán)發(fā)起數(shù)據(jù)傳輸?shù)娜毕?,并引入校?yàn)重發(fā)機(jī)制,進(jìn)一步提高了數(shù)據(jù)通信的可靠性。

  底層驅(qū)動(dòng)設(shè)計(jì)

  SPI模塊初始化

  (1) 主/從模式選擇??紤]到系統(tǒng)在實(shí)際工作中,需由飛控DSP確定整個(gè)系統(tǒng)的運(yùn)行時(shí)序,由飛控DSP決定是否讀取以及何時(shí)讀取導(dǎo)航DSP的解算結(jié)果,故將飛控DSP作為主機(jī),導(dǎo)航DSP作為從機(jī)。

  (2) 數(shù)據(jù)格式設(shè)定。程序每次寫入發(fā)送緩沖寄存器的數(shù)據(jù)長(zhǎng)度以及每次從接收緩沖寄存器讀出的數(shù)據(jù)長(zhǎng)度均為16 bit。

  (3) 時(shí)鐘模式選擇。SPI協(xié)議使用串行時(shí)鐘同步主/從雙方的收/發(fā)操作,故一方的發(fā)送時(shí)刻與另一方的接收時(shí)刻必須嚴(yán)格匹配,否則將導(dǎo)致接收數(shù)據(jù)錯(cuò)位甚至丟失。綜合比較4種時(shí)鐘模式后認(rèn)為,將主方配置為D模式,從方配置為A模式符合要求。圖3給出了該種配置的時(shí)序?qū)Ρ?。從圖3可知,主機(jī)在串行時(shí)鐘上升沿的半個(gè)周期之前發(fā)送數(shù)據(jù),在串行時(shí)鐘的上升沿接收數(shù)據(jù);從機(jī)在串行時(shí)鐘的下降沿發(fā)送數(shù)據(jù),在串行時(shí)鐘的上升沿接收數(shù)據(jù)。因此,接收方鎖存數(shù)據(jù)的時(shí)刻總是比發(fā)送方發(fā)送數(shù)據(jù)的時(shí)刻延遲半個(gè)時(shí)鐘周期,能夠保證將數(shù)據(jù)準(zhǔn)確鎖存。

  (4) 發(fā)送FIFO設(shè)置。發(fā)送FIFO通常與中斷模式配合使用。主機(jī)與從機(jī)的發(fā)送FIFO中斷觸發(fā)閾值均設(shè)為0,即當(dāng)發(fā)送FIFO為空時(shí)觸發(fā)中斷。注意,在初始化完成后,發(fā)送FIFO為空,滿足發(fā)送中斷的觸發(fā)條件,而此時(shí)并不需要發(fā)送數(shù)據(jù),因此必須屏蔽發(fā)送中斷。

  (5) 接收FIFO設(shè)置。接收FIFO也是與中斷模式配合使用。主機(jī)與從機(jī)的接收FIFO中斷閾值均設(shè)為16,即當(dāng)接收FIFO滿16個(gè)字時(shí)觸發(fā)中斷。

  主機(jī)發(fā)送/從機(jī)接收的驅(qū)動(dòng)設(shè)計(jì)

  (1) 主機(jī)發(fā)送數(shù)據(jù)的驅(qū)動(dòng)設(shè)計(jì)。主機(jī)首先將待發(fā)送的數(shù)據(jù)全部準(zhǔn)備完畢,然后使能發(fā)送中斷,在中斷服務(wù)函數(shù)中將16字?jǐn)?shù)據(jù)寫入發(fā)送FIFO,硬件電路將自動(dòng)開始發(fā)送,待發(fā)送FIFO為空時(shí)寫入下個(gè)數(shù)據(jù)幀,如此往復(fù),直至數(shù)據(jù)全部發(fā)送完畢,然后屏蔽發(fā)送中斷,完成本次發(fā)送操作。

  (2) 從機(jī)接收數(shù)據(jù)的驅(qū)動(dòng)設(shè)計(jì)。當(dāng)接收FIFO內(nèi)存滿一個(gè)數(shù)據(jù)幀后觸發(fā)接收中斷,在中斷服務(wù)函數(shù)中將此數(shù)據(jù)幀讀出。

通信相關(guān)文章:通信原理



上一頁 1 2 3 下一頁

關(guān)鍵詞: SPI CRC 201102

評(píng)論


相關(guān)推薦

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

關(guān)閉