基于觸摸屏和DSP的串行通信系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在現(xiàn)代工業(yè)控制中,最常用的人機(jī)接口界面依然采用的是鍵盤和液晶相結(jié)合的方式,要讓觸摸屏取代以前的人機(jī)接口界面,還存在一定的問(wèn)題。在實(shí)際應(yīng)用中,觸摸屏一般是針對(duì)可編程控制器PLC 設(shè)計(jì)的,所以DSP 與觸摸屏不能直接通信,必須根據(jù)觸摸屏的通信協(xié)議開(kāi)發(fā)相應(yīng)的通信程序。本文研究基于MODBUS 協(xié)議的觸摸屏和DSP 的通信方法,其中DSP 使用TI公司的TMS320F2812,觸摸屏使用維控科技的LEVI700L。
1 DSP 與觸摸屏的硬件電路連接
TI 公司的TMS320F2812 芯片有兩組SCI 模塊,SCIA 和SCIB。根據(jù)不同的需要,可以將這兩個(gè)串口分別設(shè)計(jì)轉(zhuǎn)換成RS232 和RS485。本文采用RS485 實(shí)現(xiàn)DSP 和觸摸屏的串行通信,RS485 通訊相對(duì)于RS232 通訊來(lái)說(shuō)有抗電氣干擾和傳輸距離遠(yuǎn)的優(yōu)點(diǎn),所以在工業(yè)控制現(xiàn)場(chǎng),利用RS485 串口和觸摸屏LEVI700L 進(jìn)行通信。如圖1 所示是將SCIB 口通過(guò)MAX3485 芯片設(shè)計(jì)成半雙工方式的RS485 接口,即數(shù)據(jù)可以在兩個(gè)方向傳輸,可是不能同時(shí)傳輸。圖中RE、DE 引腳為發(fā)送和接受使能端。DSP 通過(guò)將引腳PWM2(A1)口設(shè)置成通用數(shù)字I/O 口來(lái)控制使能端為1 或0,即接收或發(fā)送。A、B 引腳通過(guò)靜電保護(hù)芯片PSM712 連接到RS485 的接收端RS485A 和發(fā)送端RS485B。圖中D1 和D3 發(fā)光二極管是為了監(jiān)測(cè)DSP 正在接受或者發(fā)送數(shù)據(jù)。
觸摸屏LEVI700L 帶有一個(gè)DB9 串口, 支持RS232/RS485/RS422,其中2、3、5 用于RS232 通信,1、6 用于RS485通信。本設(shè)計(jì)中DSP 和觸摸屏的通信采用RS485,因此,只需將圖1 中的RS485A 和觸摸屏DB9 口的1 引腳連接,RS485B 與6 引腳連接即可。
圖1 RS485 串口通信電路設(shè)計(jì)
2 基于MODBUS 協(xié)議的通信程序設(shè)計(jì)
2.1 MODBUS 協(xié)議的主從編程方法
觸摸屏和DSP 按照MODBUS 協(xié)議通信,將觸摸屏作為主站,DSP 作為從站,串口連接采用RS485。觸摸屏和DSP 的通信是有觸摸屏發(fā)起的,DSP 采用中斷方式響應(yīng)觸摸屏發(fā)送來(lái)的數(shù)據(jù),非通信情況下DSP 可以做其它更多的工作。當(dāng)觸摸屏有數(shù)據(jù)發(fā)送給DSP 時(shí),觸發(fā)DSP 接收中斷,DSP 進(jìn)入接收中斷服務(wù)子程序,此時(shí),觸摸屏發(fā)送給DSP 的是一個(gè)完整的數(shù)據(jù)幀,至少包含8 個(gè)字節(jié)的數(shù)據(jù)長(zhǎng)度, 在完整讀取這組數(shù)據(jù)后,DSP 對(duì)其進(jìn)行處理。首先進(jìn)行從設(shè)備站號(hào)匹配(本文中DSP 站號(hào)設(shè)為07),如果匹配不成功則DSP 不響應(yīng)觸摸屏的查詢,DSP 不回送任何信息;如果匹配成功則進(jìn)行CRC 校驗(yàn),若CRC 校驗(yàn)出錯(cuò),則查詢失敗,不返回?cái)?shù)據(jù)信息;若CRC 校驗(yàn)正確,則進(jìn)行下一步的命令解析,并返回給觸摸屏對(duì)應(yīng)的數(shù)據(jù)信息。
下面簡(jiǎn)要介紹如何從DSP 中讀取幾個(gè)模擬量并顯示在觸摸屏上,讀可讀寫模擬量寄存器的功能碼是03。
觸摸屏發(fā)送的命令為:[設(shè)備地址] [功能碼03] [起始寄存器地址高8 位] [低8 位] [讀取的寄存器數(shù)高8 位] [低8 位][CRC 校驗(yàn)的低8 位] [CRC 校驗(yàn)的高8 位] 。
例如:07 03 00 03 00 02 34 6D。此命令說(shuō)明要從DSP的起始地址為00 03 的寄存器中讀取兩個(gè)模擬量。
此時(shí),若設(shè)備地址匹配且CRC 校驗(yàn)正確,則DSP 會(huì)返回?cái)?shù)據(jù)給觸摸屏。
DSP 返回的數(shù)據(jù)為:[設(shè)備地址] [功能碼03] [返回的字節(jié)個(gè)數(shù)][數(shù)據(jù)1][數(shù)據(jù)2]…[數(shù)據(jù)n][CRC 校驗(yàn)的低8 位] [CRC 校驗(yàn)的高8 位]。
例如響應(yīng)上面的命令返回的數(shù)據(jù)為:07 03 04 00 10 0020 9C 2E。說(shuō)明返回的模擬量為16 和32。
2.2 觸摸屏介紹及組態(tài)畫面的設(shè)計(jì)
觸摸屏LEVI700L 是維控科技生產(chǎn)的7 英寸真彩TFT,主板規(guī)格:RISC CPU 400MHz,128M Flash,64DDRAM。擁有一個(gè)DB9 串口,支持RS232/RS485/RS422 通信,另外包括一個(gè)USB Host 和一個(gè)USB Slave。
觸摸屏LEVI700L 配套的組態(tài)軟件為L(zhǎng)EVI Studio,用戶界面友好,易于操作,支持離線和在線模擬。本文以觸摸屏在大功率晶閘管整流控制器中的應(yīng)用為例,說(shuō)明觸摸屏的畫面設(shè)計(jì)。主要有主界面、實(shí)時(shí)曲線查看整定畫面、參數(shù)調(diào)節(jié)畫面、工作模式查詢畫面,圖2 給出主界面和實(shí)時(shí)曲線查詢畫面??赏ㄟ^(guò)通訊口配置設(shè)置觸摸屏和DSP 以及其他控制器進(jìn)行連接,同時(shí)可選擇相應(yīng)的通信協(xié)議,本設(shè)計(jì)中采用Modbus 協(xié)議,串口參數(shù)設(shè)置為波特率:38400Kbps,停止位:1 位,數(shù)據(jù)位:8 位,無(wú)校驗(yàn)。另外還需要配置各個(gè)部件的地址。如圖2 中反饋電壓和電流的查看是個(gè)數(shù)字輸入/顯示部件,根據(jù)MODBUS 協(xié)議要對(duì)其讀取地址進(jìn)行編輯,使用功能碼3 對(duì)其讀數(shù)據(jù)。從上節(jié)中觸摸屏發(fā)送數(shù)據(jù)的命令格式可知,需要設(shè)置DSP 的站號(hào)和寄存器的類型以及起始地址。
圖2 觸摸屏畫面設(shè)計(jì)
2.3 從站DSP 程序設(shè)計(jì)
若要觸摸屏和DSP 通信成功,在DSP 的串口初始化時(shí)就需要將串口參數(shù)設(shè)置的和觸摸屏一致, 即波特率:38400Kbps,停止位:1 位,數(shù)據(jù)位:8位,無(wú)校驗(yàn)。一旦二者通信成功,觸摸屏?xí)鶕?jù)部件設(shè)置向DSP 發(fā)送相應(yīng)的數(shù)據(jù)命令, 如上節(jié)圖2中的反饋電壓和電流,觸摸屏上需要顯示從DSP中讀出的數(shù)據(jù),就會(huì)發(fā)送命令:07 03 00 03 0002 34 6D。DSP 接收到命令數(shù)據(jù)后的處理過(guò)程如圖3 所示。[!--empirenews.page--]
圖3 數(shù)據(jù)通信流程圖
從圖3 可以看出,DSP 的程序設(shè)計(jì)主要包括初始化,接收和發(fā)送中斷子程序,MODBUS 幀解析、處理及回應(yīng)子程序,CRC 碼驗(yàn)證子程序。其中接收和發(fā)送中斷子程序的流程圖如圖4 所示。
圖4 接收和發(fā)送中斷子程序流程圖
3 試驗(yàn)調(diào)試
DSP 和觸摸屏的通信接口調(diào)試分步驟進(jìn)行,包括:觸摸屏串口測(cè)試、通信軟件的調(diào)試以及觸摸屏和DSP 通信的試驗(yàn)和調(diào)試。
1)觸摸屏串口測(cè)試:首先在LEVI Studio 組態(tài)軟件中編寫畫面程序并且利用數(shù)據(jù)下載線將其下載到觸摸屏中,然后利用串口調(diào)試線將觸摸屏和PC 機(jī)連接起來(lái),通過(guò)串口調(diào)試工具可以查看到觸摸屏不斷向串口發(fā)送命令, 同時(shí)串口調(diào)試工具也可以編寫正確的返回?cái)?shù)據(jù)給觸摸屏。此時(shí)需要注意的是必須將觸摸屏的串口參數(shù)和串口調(diào)試工具的串口參數(shù)設(shè)置的一致才能通信成功。
2)通信軟件的調(diào)試:利用串口線將DSP 電路板和PC 機(jī)連接,在CCS 中編寫好C 語(yǔ)言程序后,利用仿真器和串口調(diào)試工具對(duì)主程序,數(shù)據(jù)接收和發(fā)送中斷子程序,MODBUS 幀解析、處理及回應(yīng)子程序,CRC 碼驗(yàn)證子程序進(jìn)行仿真調(diào)試。
3)觸摸屏和DSP 通信試驗(yàn)和調(diào)試:通過(guò)上述兩個(gè)部分的調(diào)試后,按照?qǐng)D1 所示的硬件連接線路將DSP 和觸摸屏連接起來(lái)。在此之前,需要將調(diào)試好的組態(tài)畫面程序下載到觸摸屏中,C 語(yǔ)言程序固話到DSP 的Flash 中。最后,若通信成功,可從觸摸屏中看到相關(guān)數(shù)據(jù),如圖5 所示a 為實(shí)時(shí)曲線圖,b 為PID 參數(shù)調(diào)節(jié)圖,其中給定電壓、電流,PID 參數(shù)可以在線修改,c 為權(quán)限設(shè)置界面,不同的工作人員權(quán)限不一致,在修改某些參數(shù)時(shí)需要輸入密碼。
圖5 實(shí)驗(yàn)結(jié)果圖
4 結(jié)束語(yǔ)
本文設(shè)計(jì)了基于MODBUS 協(xié)議的觸摸屏和DSP 串行通信的硬件電路和軟件程序,經(jīng)過(guò)試驗(yàn)調(diào)試說(shuō)明該系統(tǒng)通信穩(wěn)定可靠,速率可達(dá)38400Kbps,實(shí)時(shí)性強(qiáng)。以大功率晶閘管整流控制器的應(yīng)用為例,得出了相關(guān)的實(shí)驗(yàn)數(shù)據(jù),說(shuō)明本文設(shè)計(jì)的系統(tǒng)滿足工業(yè)控制監(jiān)測(cè)顯示需要,同時(shí)由于觸摸屏在人機(jī)界面領(lǐng)域的顯著優(yōu)勢(shì), 本文提出的設(shè)計(jì)思路也可應(yīng)用于其他工業(yè)控制器的人機(jī)接口通信。