1 引言 自20世紀(jì)60年代以來,數(shù)字信號處理(Digital Signal Processing,DSP)日漸成為一項成熟技術(shù),并在多項應(yīng)用領(lǐng)域逐漸替代了傳統(tǒng)模擬信號處理系統(tǒng)。DSP技術(shù)及設(shè)備具有靈活、精確、抗干擾能力強(qiáng)、設(shè)備尺寸小、速度快、性能穩(wěn)定和易于升級等優(yōu)點。以DSP為核心的控制器在控制過程中需要將許多參數(shù)顯示給用戶,同時有的控制參數(shù)需要在線修改,因此可以選擇具有人機(jī)交互能力的人機(jī)界面觸摸屏解決上述問題。觸摸屏一般是針對可編程控制器(PLC)所設(shè)計的,不能與DSP直接通信,觸摸屏要與DSP通信需要開發(fā)相應(yīng)的通信程序。 本文以TI公司的TMS320F2812為核心的DSP勵磁控制器與臺灣泉毅電子股份有限公司(HITECH)的PWS6600S-S觸摸屏為例,對兩者的通信程序設(shè)計以及實現(xiàn)進(jìn)行了討論。 2 TMS320F2812的增強(qiáng)SCI模塊特點
串行通信接口SCI是一個雙線的異步串口,一般看作是UART。SCI模塊支持CPU 與采用非返回至0(non-return-to-zero)(NRZ)標(biāo)準(zhǔn)格式 的異步外圍設(shè)備之間的數(shù)字通信。 SCI模塊有如下特點:有SCITXD(發(fā)送輸出引腳)和SCIRXD(接收輸入)引腳兩個外部引腳;波特率通過編程可產(chǎn)生64K種不同的速率;通信數(shù)據(jù)的格式為:一個起始位、數(shù)據(jù)字長度可通過編程在16~8位內(nèi)可選、可供選擇的偶/奇/非極性位、一個或兩個停止位;4個錯誤檢測標(biāo)志:極性、溢出、幀和中斷檢測;空閑線和地址位兩種喚醒多處理器模式;半雙工或全雙工兩種通信模式;雙緩沖和發(fā)送功能;獨立的發(fā)送器中斷使能位和接收器中斷使能位(除BRKDT)等。另外SCI有兩個增強(qiáng)性特點:自動波特率檢測硬件邏輯和16級發(fā)送/接收FIFO。 3 PWS6600S-S觸摸屏簡介
PWS6600S-S觸摸屏(以下簡稱PWS)的面板采用5.7英寸(320x240)高分辨率STN的液晶顯示模塊,顯示色彩為16灰階(天藍(lán)色)。它有如下特點:兩個通信端口:9腳的母接頭RS232/RS485(COM1)和25腳的母接頭RS232/RS422/RS485(COM2);處理器為32位RISC;內(nèi)存達(dá)4M;RAM 為512K等。 設(shè)計PWS人機(jī)界面時,不需要編寫專門的畫面程序,開發(fā)商給用戶提供了功能強(qiáng)大的ADP6編程軟件,它有如下特點:多種語言版本可供選擇,畫面可支持多種語言文字自動切換功能;支持密碼和用戶程序保護(hù)功能;提供基底畫面及子窗口畫面;提供內(nèi)部宏指令、階梯圖自主開發(fā)通信及控制程序;強(qiáng)大的離線、在線模擬功能及SOFTPANEL等。使用者可根據(jù)自己的設(shè)計要求容易地編制出相應(yīng)的畫面,利用HITECH公司提供的編程下載電纜將編輯好的應(yīng)用畫面下載到PWS,需要說明的是此編程下載電纜也可作為PWS與DSP勵磁控制器的通信電纜,將此電纜的母接頭(與PC機(jī)連接一端)轉(zhuǎn)換成公接頭與DSP連接即可使用。 4 DSP與PWS觸摸屏串行通信的軟件設(shè)計及實現(xiàn)
本文結(jié)合PWS觸摸屏和DSP勵磁控制器(以下簡稱DSP)各自的特點,通過自定義通信協(xié)議進(jìn)行異步串行通信。如上所述PWS觸摸屏的COM2端口對RS232/RS422/RS485通信方式自適應(yīng),由于兩者的數(shù)據(jù)傳輸距離比較小,因此本文選擇RS232。RS232有良好的穩(wěn)定性,編制程序簡單、靈活、傳輸可靠等特點。它們之間的通信接線如圖1所示。SCI通信數(shù)據(jù)幀格式選擇為:1個起 始位、8個數(shù)據(jù)位、一個校驗位(無校驗)、一個停止位。為了提高通信效率,選擇波特率為115200baud/s。 圖1 通訊連線 4.1 DSP串口通信的軟件設(shè)計及初始化 4.1.1 DSP 串口通信的軟件設(shè)計 TMS320F2812的SCI接受器和發(fā)送器可采用中斷和查詢兩種方式進(jìn)行串行通信。SCI為接受器和發(fā)送器提供獨立的外部中斷向量。中斷方式可以節(jié)約CPU 的開銷,但是會影響DSP勵磁控制器其它的功能。查詢方式編程簡單、容易實現(xiàn),但是會加重CPU 的開銷??紤]到不能影響控制器主要控制功能,本文采用查詢方式。 TMS320F2812的串口支持16級接受和發(fā)送FIFO。當(dāng)不使用FIFO時,SCI接受器和發(fā)送器采用雙級緩沖傳送數(shù)據(jù)。實踐表明:當(dāng)不使用FIFO時,對于發(fā)送、接受相同通信數(shù)據(jù)(如16個字),觸摸屏接受顯示數(shù)據(jù)正常,而DSP勵磁控制器由于接受數(shù)據(jù)所用時間相對較長會影響其其它控制功能。當(dāng)使用FIFO時,上述問題得到了解決。因此本文采用在DSP發(fā)送數(shù)據(jù)時,禁止FIFO,而在DSP接受數(shù)據(jù)時使能FIFO。 DSP發(fā)送數(shù)據(jù)時,首先禁止FIFO,然后查詢SCI控制寄存器2(SCICTL2)中的發(fā)送器緩沖寄存器就緒標(biāo)志TXRDY,當(dāng)TXRDY置1,表明發(fā)送數(shù)據(jù)緩沖寄存器SCITXBUF準(zhǔn)備接收下一個字符,然后向SCITXBUF寫入數(shù)據(jù)即可完成數(shù)據(jù)的發(fā)送,寫入數(shù)據(jù)后該位自動清零,字符發(fā)送完畢后,該位置1,接著發(fā)送下一字,直到發(fā)送完畢;DSP接受數(shù)據(jù)時,首先使能FIFO,然后查詢SCI FIFO接受寄存器(SCIFFRX)中的位RXFFST(表示接受FIFO里字的個數(shù),最多為16個字),當(dāng)RXFFST不等于0時,表明接受數(shù)據(jù)緩沖寄存器SCIRXBUF接受到數(shù)據(jù),接著讀取數(shù)據(jù),當(dāng)SCIRXBUF中的數(shù)據(jù)被讀完后,RXFFST 置0。DSP發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的程序流程圖如圖2、圖3所示。SCI通信數(shù)據(jù)幀選擇8個數(shù)據(jù)位傳送數(shù)據(jù),每幀只能傳送0~256之間的數(shù),如果大于256就要將其分解傳送,同理接受數(shù)據(jù)則需要將其還原。這種分解、還原數(shù)據(jù)的功能以函數(shù)的形式實現(xiàn)。 圖2 發(fā)送數(shù)據(jù)流程圖 圖3 接收數(shù)據(jù)流程圖 4.1.2 DSP串口通信的初始化 DSP的SCI模塊與PWS觸摸屏通信之前需要初始化SCI,SCI的初始化通過設(shè)置相關(guān)的寄存器實現(xiàn),初始化程序如下: Void InitSci(void) {SciaRegs.SCICCR.all=0x0007;//一個停止位、無校驗、8個數(shù)據(jù)位、空閑線模式 SciaRegs.SCICTL1.all=0x03;//使能接收、發(fā)送,禁止休眠、錯誤中斷SciaRegs.SCI CTL2.all=0x0000;//禁止發(fā)送、接收中斷 SciaRegs.SCIHBAUD = 0x00; SciaRegs.SCILBAUD = 0x33;//波特率為115200(LSPCLK為48MHZ) SciaRegs.SCICTL1.bit.SWRESET =1;//啟動SCI SciaRegs.SCIFFCT.all=0x0000;//(FIFO模式)禁止自動波特率校驗,0周期延遲發(fā)送 SciaRegs.SCIFFTX.all=0xE040;//使能FIFO增強(qiáng)功能,禁止TX FIFO 中斷 SciaRegs.SCIFFRX.all=0x205f;//禁止RX FIFO中斷 GpioMuxRegs.GPFMUX.bit.SCIRXDA_GPIOF5=1; GpioMuxRegs.GPFMUX.bit.SCITXDA_GPIOF4=1; GpioMuxRegs.GPFDIR.bit.GPIOF4=1; GpioMuxRegs.GPFDIR.bit.GPIOF5=0; } 4.2 PWS觸摸屏通信軟件設(shè)計及初始化 4.2.1 PWS觸摸屏通信軟件設(shè)計 本文利用HITECH提供的ADP6軟件工具設(shè)計PWS觸摸屏通信軟件,此觸摸屏是可編程的。ADP6軟件提供了一種既方便又功能強(qiáng)大的宏指令應(yīng)用方式,利用宏指令可實現(xiàn)數(shù)值運算、邏輯判斷、流程控制、數(shù)值轉(zhuǎn)換、數(shù)據(jù)發(fā)送、接受數(shù)據(jù)、自定義通信指令操作等。 本文PWS觸摸屏選擇定時中斷通信方式,即利用ADP6軟件提供的應(yīng)用宏CLOCK,通信時以500 ms周期循環(huán)執(zhí)行此宏指令內(nèi)的全部指令一次。實現(xiàn)每500 ms分別執(zhí)行一次接受和發(fā)送數(shù)據(jù)通信。PWS觸摸屏發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的程序流程圖如圖4、圖5所示。 4.2.2 PWS觸摸屏通信的初始化 PWS觸摸屏在通信之前需要進(jìn)行初始化,觸摸屏通信端口的初始化需要和DSP的通信格式對應(yīng),否則無法通信。利用ADP6軟件提供的應(yīng)用宏INITIAL,實現(xiàn)通信參數(shù)的格式宣告和參數(shù)的初值定義等。觸摸屏通信端口的初始化有兩種方法:一是利用宏指令,二是通過觸摸屏系統(tǒng)菜單里的通信設(shè)置。 本應(yīng)用選擇觸摸屏的COM2為通信端口,調(diào)用指令SYS(INIT_C0M,N)設(shè)置通信格式。設(shè)定軟件的應(yīng)用工作參數(shù)時,選擇“編程種類”為宏,選擇“PLC”種類為NULL。需要注意的是,當(dāng)使用ADP6軟件提供的宏指令初始化通信端口時,必須將觸摸屏背后的指撥開關(guān)(Dip Switches)的第5位(SW5)設(shè)置為OFF。宏指令初始化通信端口程序如下: @500=291//利用內(nèi)部存儲區(qū)定義變量即@500為變量,291(表示選擇RS232、波特率為115200、COM2、無校驗、1個停止位、8個數(shù)據(jù)位) SYS(INIT_COM,500)//宏指令初始化通信端口 4.3 DSP與PWS觸摸屏串行通信的實現(xiàn)
DSP與PWS觸摸屏串行通信的程序編制完成后,將兩者利用提供的通信電纜連接起來,即可實現(xiàn)雙方的通信,實現(xiàn)了PWS觸摸屏在線修改DSP勵磁控制器的控制參數(shù)等功能。結(jié)果表明兩者之間的通信是穩(wěn)定可靠的,完全滿足開發(fā)的要求。 5 結(jié)束語
本文闡述了DSP增強(qiáng)的SCI模塊串行通信功能以及觸摸屏軟件設(shè)計的主要特點,分別給出了兩者的通信程序流程圖和初始化程序,實現(xiàn)了以TMS320F2812為核心的DSP勵磁控制器和PwS6600S-S觸摸屏之間的通信。利用SCI的增強(qiáng)功能16級發(fā)送/接收FIF0,可減少CPU 的開銷,利用ADP6軟件及其方便、功能強(qiáng)大的宏指令,可大大提高開發(fā)效率。 本文來自: DZ3W.COM 原文網(wǎng)址:http://www./mcu/dsp/0073174.html
|
|