• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      系統(tǒng)串行通訊硬件接口設(shè)計(jì)

      2022-05-31 16:54:21趙維衛(wèi)
      科學(xué)與財(cái)富 2022年1期
      關(guān)鍵詞:數(shù)據(jù)通信

      趙維衛(wèi)

      摘 ?要:傳統(tǒng)的DSP主控芯片硬件電路中,中央處理器的運(yùn)算能力較低,且這類(lèi)硬件電路的開(kāi)發(fā)設(shè)計(jì)都難度較大,不同項(xiàng)目之間可重用的部分較小,硬件參數(shù)僅適用于部分電路,本設(shè)計(jì)基于TI公司的28XX系列數(shù)字處理芯片,設(shè)計(jì)了一個(gè)主控芯片硬件電路方案。該方案有優(yōu)秀的數(shù)據(jù)處理能力,數(shù)據(jù)通信方式適用于長(zhǎng)距離通信,針對(duì)數(shù)據(jù)通信編寫(xiě)了DSP芯片內(nèi)軟件,并進(jìn)行了實(shí)際試驗(yàn)與測(cè)試。通過(guò)試驗(yàn)可知,本文設(shè)計(jì)的DSP的硬件電路及驅(qū)動(dòng)軟件,軟件運(yùn)行可靠,通訊誤差小,可擴(kuò)展性強(qiáng),成本低,便于維護(hù)。

      關(guān)鍵詞:DSP;數(shù)據(jù)通信;驅(qū)動(dòng)軟件;

      1. 緒論

      本文選用的數(shù)據(jù)處理芯片為T(mén)I公司的TMS320F28335芯片,芯片內(nèi)部設(shè)有3個(gè)SCI異步串口,該異步串口功能支持中央處理器以及其他采用標(biāo)準(zhǔn)格式的異步外設(shè)進(jìn)行數(shù)字通信。[1]SCI異步串口的接收功能和發(fā)送功能都是雙緩沖的,接收和發(fā)送功能具備單獨(dú)的使能和中斷標(biāo)志位。芯片在全雙工模式下工作,兩者都可以獨(dú)立或同步運(yùn)行。為保證數(shù)據(jù)幀不會(huì)產(chǎn)生遺漏,SCI異步串口模塊對(duì)接收緩沖區(qū)的數(shù)據(jù)幀進(jìn)行周期性檢測(cè)、奇偶校驗(yàn)、超時(shí)檢查和幀校驗(yàn)。[2]

      2. 基于TI公司的28XX系列芯片的數(shù)據(jù)通信

      本設(shè)計(jì)方案采用RS232串行通信接口標(biāo)準(zhǔn),在元器件的電特性上RS232采用負(fù)相關(guān)邏輯,這就需要高電平與低電平信號(hào)的電壓值相差較大,具體的邏輯為:邏輯1即高電平在-3V至-15V之間,邏輯0即低電平在+3V至+15V之間,實(shí)際應(yīng)用中通常通常將-10V左右設(shè)置為邏輯1高電平,將+10V左右為邏輯0低電平。由于本文選用的TMS320F28335數(shù)字處理芯片的輸入端和輸出端為邏輯1高電平為+3V左右,邏輯0低電平為0.3V左右,因此必須在芯片外圍電路中增加轉(zhuǎn)換電路,以實(shí)現(xiàn)TTL電平到RS232電平的切換,本設(shè)計(jì)采用MAX3232作為電平轉(zhuǎn)換電路。

      為提高硬件電路的抗干擾性,下位機(jī)主控芯片DSP和上位機(jī)工控機(jī)的串行通信用光耦6N137電路進(jìn)行光電隔離,以提升上位機(jī)工控機(jī)和下位機(jī)DSP的數(shù)據(jù)傳輸準(zhǔn)確性。按照RS232標(biāo)準(zhǔn)要求,該制式下的信號(hào)傳輸?shù)淖畲箅娎|長(zhǎng)度為30m,為實(shí)現(xiàn)該硬件電路的遠(yuǎn)距離的數(shù)據(jù)通信要求,本設(shè)計(jì)還具備可選的RS485通信接口,用來(lái)滿足不同情況下的需求。本設(shè)計(jì)的串行通訊硬件接口設(shè)計(jì)結(jié)構(gòu)圖如圖1所示。

      3. 通信系統(tǒng)軟件設(shè)計(jì)

      為了讓通信系統(tǒng)具備高度通信穩(wěn)定性和持續(xù)工作可靠性,本設(shè)計(jì)方案中的上位機(jī)和下位機(jī)要按照約定的通信協(xié)議進(jìn)行通信。上位機(jī)與下位機(jī)約定的通信協(xié)議如表1所示。通信協(xié)議命令用字節(jié)型十六進(jìn)制數(shù)據(jù)作為最小單位,每個(gè)數(shù)據(jù)幀有8byte,其中BYTE0,BYTE1是起始標(biāo)識(shí)類(lèi)型字節(jié)標(biāo)識(shí)符,即幀頭,BYTE3~BYTE5為數(shù)據(jù)字節(jié),BYTE6-BYTE7是兩字節(jié)的CRC校驗(yàn)碼,作為數(shù)據(jù)幀的校驗(yàn)碼,確定本幀數(shù)據(jù)是否存在傳輸過(guò)程中的錯(cuò)誤,本設(shè)計(jì)采用16位CRC校驗(yàn)算法來(lái)校驗(yàn)所接收的數(shù)據(jù)。上位機(jī)與下位機(jī)共同計(jì)算CRC校驗(yàn),通過(guò)判斷BYTE6-BYTE7傳輸值與上位機(jī)算出的數(shù)據(jù)的一致性來(lái)確定本幀數(shù)據(jù)接收的正確性。

      4. 下位機(jī)DSP串行通訊軟件設(shè)計(jì)

      DSP芯片TMS320F28335數(shù)字處理芯片有3個(gè)SCI異步串口(即SCIA、SCIB和SCIC),本方案選用的SCIC為串行通訊接口。下位機(jī)DSP串行通訊程序軟件設(shè)計(jì)主要包括串口初始化、數(shù)據(jù)發(fā)送TX及數(shù)據(jù)接收RX共3個(gè)子程序的設(shè)計(jì)。串行通訊數(shù)據(jù)的發(fā)送和接收可以采用查詢或中斷的工作方式。為提高發(fā)送數(shù)據(jù)功能的可操作性和接收數(shù)據(jù)功能的低延遲性,本設(shè)計(jì)方案的串口通信數(shù)據(jù)發(fā)送TX子程序采用查詢工作方式,數(shù)據(jù)接收RX子程序采用中斷工作方式。此外,由于28335數(shù)字信號(hào)處理芯片的串口支持16級(jí)的發(fā)送和接收FIFO,為減少系統(tǒng)串行通信時(shí)CPU的資源占用,串行通信數(shù)據(jù)發(fā)送和接收均采用FIFO工作方式。

      (1)DSP串行通訊初始化程序設(shè)計(jì)

      DSP串行通訊初始化程序涉及到通訊端口GPIO配置,通訊端口波特率配置、通訊數(shù)據(jù)格式設(shè)置、發(fā)送和接收參數(shù)設(shè)置和FIFO設(shè)置等。本設(shè)計(jì)方案的下位機(jī)串行通訊波特率參數(shù)為115200,數(shù)據(jù)位為8,無(wú)奇偶校驗(yàn),停止位為1,對(duì)接收中斷使能,并且關(guān)閉發(fā)送中斷,發(fā)送FIFO參數(shù)設(shè)置為16,接收FIFO參數(shù)設(shè)置為8。串口配置部分的程序代碼如下:

      ……

      ScicRegs.SCICCR.all=0x0007;//8個(gè)數(shù)據(jù)位,1個(gè)停止位,無(wú)校驗(yàn)位,異步模式

      ScicRegs.SCICTL1.all=0x0003;//使能串行發(fā)送和接收

      ScicRegs.SCICTL2.bit.RXBKINTENA=1;//使能串行接收中斷

      ScicRegs.SCICTL2.bit.TXINTENA=0;//禁止串行發(fā)送中斷

      ScicRegs.SCIHBAUD=0x0000;//波特率設(shè)置為115200,LSPCLK=37.5MHz.

      ScicRegs.SCILBAUD=0x0028;

      ScicRegs.SCIFFTX.all=0x0010;//發(fā)送FIFO設(shè)置,深度為16

      ScicRegs.SCIFFRX.all=0x0028;//接收FIFO設(shè)置,深度為8

      ScicRegs.SCICTL1.bit.SWRESET=1;//復(fù)位SCIC串行口

      (2)DSP串行通訊發(fā)送模塊程序設(shè)計(jì)

      DSP串行通訊發(fā)送程序主要包括單字節(jié)數(shù)據(jù)發(fā)送程序和多字節(jié)數(shù)據(jù)發(fā)送程序兩種。其中單字節(jié)數(shù)據(jù)發(fā)送程序設(shè)計(jì)時(shí),只需要把發(fā)送的字節(jié)數(shù)據(jù)送到SCITXBUF數(shù)據(jù)緩沖區(qū),即可啟動(dòng)FIFO數(shù)據(jù)的發(fā)送工作。在單字節(jié)數(shù)據(jù)發(fā)送程序設(shè)計(jì)的基礎(chǔ)上,可以設(shè)計(jì)出多字節(jié)數(shù)據(jù)發(fā)送程序。其程序設(shè)計(jì)流程圖2所示。

      (3)DSP串行通訊接收模塊程序設(shè)計(jì)

      28335數(shù)字信號(hào)處理芯片的串行通訊接收模塊子程序涉及串行接收中斷初始化設(shè)置及接收中斷服務(wù)子程序設(shè)計(jì)。其中串行接收中斷初始化設(shè)置包括設(shè)置接收中斷服務(wù)子程序地址、PIE中斷、CPU中斷及總中斷設(shè)置工作。其主要程序代碼如下:

      ……

      PieVectTable.SCIRXINTC=&scicRxFifoIsr//設(shè)置中斷服務(wù)子程序地址

      PieCtrlRegs.PIEIER8.bit.INTx5=1;//PIEGroup8,

      INT5,SCIC_RXD,開(kāi)放PIE中斷

      IER|=M_INT8;//開(kāi)放CPU中斷

      EINT;//EnableGlobalinterruptINTM

      ERTM;//EnableGlobalrealtimeinterruptDBGM

      ……

      串行接收中斷服務(wù)模塊采用FIFO中斷方式,當(dāng)FIFO接收到8byte的數(shù)據(jù)時(shí),就會(huì)產(chǎn)生FIFO接收中斷,并在中斷服務(wù)模塊中接收并且存儲(chǔ)這些數(shù)據(jù)。串行接收中斷服務(wù)子程序設(shè)計(jì)如圖3所示。

      串行通訊接收中斷服務(wù)子程序相關(guān)程序代碼如下:

      ……

      for(i=0;i<8;i++)

      {

      ReceiveDataTmp[i]=ScicRegs.SCIRXBUF.all&0x00ff;//接收FIFO中的數(shù)據(jù)

      }

      CrcCheckResult=Crc16_Calc(ReceiveDataTmp,0x06);//計(jì)算CRC_16

      CrcCheckResult_L=(CrcCheckResult&0x00ff);

      CrcCheckResult_H=((CrcCheckResult 8)&0x00ff);

      if((CrcCheckResult_L==ReceiveDataTmp[6])&&(Crc-CheckResult_H= =ReceiveDataTmp[7]))

      {

      Parameter(ReceiveDataTmp[3],ReceiveDataTmp[4],(ReceiveDataTmp[5]&0x000f));

      DELAY_US(1000);

      ReceiveFlag=0x0055;//表示CRC校驗(yàn)正確

      }

      else

      {

      ReceiveFlag=0x0066;//表示CRC校驗(yàn)錯(cuò)誤

      }

      ……

      5. 通信試驗(yàn)

      將上述的下位機(jī)硬件以及驅(qū)動(dòng)軟件實(shí)際應(yīng)用到一個(gè)工程項(xiàng)目中,通過(guò)NI公司的LabVIEW軟件平臺(tái)編寫(xiě)上位機(jī)軟件,設(shè)置數(shù)字量的方波數(shù)值參數(shù),包括方波周期、方波寬度及方波個(gè)數(shù)等信息,然后通過(guò)串口以RS232/RS485制式,將設(shè)置完畢的方波信號(hào)發(fā)送到下位機(jī)DSP,由DSP接收指令并產(chǎn)生上位機(jī)要求的數(shù)字方波信號(hào)。上位機(jī)通過(guò)28335反饋的數(shù)據(jù)檢查方波生成情況,并顯示反饋數(shù)據(jù)幀如圖5所示。在上位機(jī)的串口設(shè)置界面中,先對(duì)串口的端口號(hào)進(jìn)行設(shè)置,然后設(shè)定上述的方波參數(shù),約束通信協(xié)議中規(guī)定的幀頭(0x55,0x66)和命令碼(0xAA),單擊發(fā)送按鍵,就會(huì)發(fā)送一幀帶有方波指令的數(shù)據(jù)幀發(fā)送給DSP,DSP接收到上位機(jī)指令后,將方波指令發(fā)回至上位機(jī)。

      以圖5中設(shè)置的參數(shù)為例,上位機(jī)向下位機(jī)發(fā)送的設(shè)置參數(shù)為周期200us的方波信號(hào),方波寬度為100us,共有8個(gè)方波。完整的數(shù)據(jù)幀通訊命令是0x55 0x66 0xAA 0xC8 0x64 0x0A 0x8F 0x36,數(shù)據(jù)幀的0x8F,0x36是數(shù)據(jù)幀前6個(gè)字節(jié)的CRC16校驗(yàn)碼,數(shù)據(jù)傳輸采用小端方式,檢查由DSP反饋的數(shù)據(jù)幀為0x55 0x66 0xAA 0xC8 0x64 0x0A 0x8F 0x36,收發(fā)數(shù)據(jù)一致,即DSP正確接收并執(zhí)行了上位機(jī)通訊命令。用示波器檢測(cè)的下位機(jī)DSP的方波輸出波形圖如圖6所示。下位機(jī)DSP輸出的8個(gè)方波寬度均為100us,周期為200us,上位機(jī)和下位機(jī)串行通訊準(zhǔn)確無(wú)誤。

      6. 結(jié)論

      本設(shè)計(jì)采用28335數(shù)字信號(hào)處理芯片,設(shè)計(jì)了一種與上位機(jī)通信的硬件電路及軟件參數(shù)配置,經(jīng)過(guò)與上位機(jī)的數(shù)據(jù)通信試驗(yàn),能夠完成信號(hào)的傳輸并執(zhí)行工作,該通信方式可用于實(shí)際工程應(yīng)用中,數(shù)據(jù)傳輸準(zhǔn)確可靠,具備一定的工程應(yīng)用作用。

      7. 參考文獻(xiàn)

      [1]商秋芳,吳學(xué)杰,梅紅偉,等.基于LabVIEW和TMS320F2812的液壓伺服控制系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2007,21(260).

      [2]吳振奎,張自雷,魏毅立,等.基于LabVIEW平臺(tái)DSP與PC的Modbus協(xié)議串口通信實(shí)現(xiàn)[J].內(nèi)蒙古科技大學(xué)學(xué)報(bào),2014,33(1):58-62.

      猜你喜歡
      數(shù)據(jù)通信
      船舶網(wǎng)絡(luò)動(dòng)態(tài)數(shù)據(jù)通信效率控制研究
      關(guān)于數(shù)據(jù)通信網(wǎng)絡(luò)維護(hù)與網(wǎng)絡(luò)安全問(wèn)題的探討
      卷宗(2020年29期)2020-03-01 04:12:27
      基于快牙平臺(tái)實(shí)現(xiàn)全站儀與計(jì)算機(jī)的數(shù)據(jù)通信
      監(jiān)測(cè)系統(tǒng)接口數(shù)據(jù)通信方式
      關(guān)于數(shù)據(jù)通信電源現(xiàn)狀和高壓直流供電新系統(tǒng)的分析
      電子制作(2017年17期)2017-12-18 06:41:07
      一種高效可靠的串行數(shù)據(jù)通信協(xié)議及處理算法
      TCN實(shí)時(shí)協(xié)議棧過(guò)程數(shù)據(jù)通信研究
      廣州蓄能水電廠B廠電能表數(shù)據(jù)通信研究與應(yīng)用
      “調(diào)控一體化”模式下水電調(diào)數(shù)據(jù)通信技術(shù)研究
      ZigBee手持終端數(shù)據(jù)通信模塊設(shè)計(jì)
      泸州市| 五常市| 邓州市| 铜鼓县| 泾阳县| 文登市| 天水市| 平湖市| 怀柔区| 蓬莱市| 巴里| 万源市| 任丘市| 河津市| 舞阳县| 临夏市| 怀仁县| 宁津县| 开化县| 内乡县| 德钦县| 台东县| 徐水县| 牟定县| 枣阳市| 邻水| 逊克县| 昭苏县| 澄江县| 丹棱县| 关岭| 武乡县| 山西省| 彭山县| 三亚市| 平谷区| 平南县| 鸡西市| 平谷区| 宜春市| 云浮市|