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.

主站蜘蛛池模板: 亚洲天堂网在线播放| 激情六月丁香婷婷四房播| 中文字幕无码制服中字| 色婷婷狠狠干| 高清视频一区| 亚洲综合二区| 国产又色又爽又黄| 久热这里只有精品6| 国产免费观看av大片的网站| 午夜日本永久乱码免费播放片| 国产男人的天堂| 亚洲一区第一页| 欧美午夜久久| 美女无遮挡免费网站| 在线国产91| 日本一区二区三区精品国产| 国产成人综合亚洲欧美在| 久久一级电影| 亚洲成年人片| 成人午夜视频网站| 在线精品亚洲一区二区古装| 天天摸天天操免费播放小视频| 国产成人高精品免费视频| 亚洲婷婷在线视频| 97se亚洲综合在线| 看国产一级毛片| 一级黄色欧美| 亚洲一区无码在线| 亚洲天堂日韩在线| 日韩视频福利| 精品人妻系列无码专区久久| 国产SUV精品一区二区6| 四虎国产永久在线观看| 99re在线视频观看| 91啪在线| 国产成人亚洲欧美激情| 香蕉eeww99国产精选播放| 欧美另类一区| 国产精品无码影视久久久久久久| 国产免费好大好硬视频| 99久久精品视香蕉蕉| 中日韩一区二区三区中文免费视频| 九色在线视频导航91| 国产美女在线免费观看| 亚洲国模精品一区| 亚洲人成人伊人成综合网无码| 国产浮力第一页永久地址| 中文成人在线视频| 亚洲日韩AV无码一区二区三区人| 国产一线在线| 激情無極限的亚洲一区免费| 国产激情第一页| 中国黄色一级视频| 亚洲第一成年人网站| 精品无码人妻一区二区| 青青青视频91在线 | 首页亚洲国产丝袜长腿综合| 97在线免费| 中文字幕精品一区二区三区视频| 国产日韩av在线播放| 国产精品久久久久久久久kt| 亚洲高清国产拍精品26u| 亚洲天堂伊人| 国产成人亚洲毛片| 91久久国产热精品免费| 国产爽歪歪免费视频在线观看 | 91视频首页| 久久精品无码一区二区日韩免费| 久久精品aⅴ无码中文字幕| 亚洲va在线∨a天堂va欧美va| 国产精品人莉莉成在线播放| 色综合天天综合中文网| 五月综合色婷婷| 欧美三级视频在线播放| 国产欧美视频一区二区三区| 国产1区2区在线观看| 在线观看免费人成视频色快速| 欧美日韩精品一区二区在线线 | 日本国产精品一区久久久| 成人精品免费视频| a级毛片免费网站| 一级毛片a女人刺激视频免费|