999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2022-05-31 16:54:21趙維衛(wèi)
科學(xué)與財(cái)富 2022年1期

趙維衛(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)滿(mǎn)足不同情況下的需求。本設(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ā)送和接收可以采用查詢(xún)或中斷的工作方式。為提高發(fā)送數(shù)據(jù)功能的可操作性和接收數(shù)據(jù)功能的低延遲性,本設(shè)計(jì)方案的串口通信數(shù)據(jù)發(fā)送TX子程序采用查詢(xún)工作方式,數(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.

主站蜘蛛池模板: 一级一级特黄女人精品毛片| 精品成人一区二区三区电影 | 五月婷婷欧美| 亚洲无码视频一区二区三区| 国产成人精彩在线视频50| 国产成年无码AⅤ片在线| 丝袜亚洲综合| 免费人成网站在线观看欧美| 久久精品人人做人人爽电影蜜月| 国产精品手机视频| 青青草原国产| 玖玖精品视频在线观看| 欧美精品v欧洲精品| 国产香蕉97碰碰视频VA碰碰看| 成人亚洲天堂| 人人91人人澡人人妻人人爽 | 国产在线一二三区| 国产性精品| 久久久精品久久久久三级| 精品视频免费在线| 四虎影视永久在线精品| 老司机久久精品视频| 另类综合视频| 国产精品网曝门免费视频| 婷婷激情亚洲| 久久青草热| 黑色丝袜高跟国产在线91| 92午夜福利影院一区二区三区| 日韩精品成人在线| 全部免费毛片免费播放| 国产噜噜噜| 好吊日免费视频| 精品亚洲麻豆1区2区3区| 国产一区二区三区免费| 日韩黄色精品| 热这里只有精品国产热门精品| 亚洲精品天堂在线观看| 欧美日韩中文字幕在线| 欧美黑人欧美精品刺激| 四虎永久在线| 国产高清免费午夜在线视频| 久久国产亚洲偷自| 国产内射一区亚洲| 亚洲欧美综合另类图片小说区| 真实国产乱子伦高清| 美女被操91视频| 欧美国产综合视频| av无码久久精品| 日韩少妇激情一区二区| 亚洲精品欧美日本中文字幕| 2022国产无码在线| 日韩无码视频专区| 亚洲成人一区在线| 大香网伊人久久综合网2020| 99精品免费在线| 国产又色又刺激高潮免费看| 国产日韩欧美成人| 婷婷六月综合| 毛片基地视频| 亚洲IV视频免费在线光看| 国产精品亚洲综合久久小说| 美女免费精品高清毛片在线视| 欧美久久网| 中文字幕无码av专区久久| 国产波多野结衣中文在线播放| 999国产精品| 亚洲三级成人| 东京热高清无码精品| 国产一二三区在线| 久久女人网| 国产精品对白刺激| 日韩精品无码不卡无码| 国产成人高清亚洲一区久久| 一级片一区| 色哟哟色院91精品网站| 国产高清国内精品福利| 伊人色在线视频| 亚洲精品图区| 国产精品欧美激情| 波多野结衣无码视频在线观看| 这里只有精品在线播放| 中文字幕在线日韩91|