<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP和觸摸屏的串行通信系統(tǒng)研究

          基于DSP和觸摸屏的串行通信系統(tǒng)研究

          作者: 時(shí)間:2014-08-05 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/256896.htm

          針對(duì)目前市場(chǎng)上無(wú)直接通信的產(chǎn)品這一缺口,介紹了基于MODBUS協(xié)議的維控的串口通信系統(tǒng)。通過(guò)將的SCI串口和的串口連接,完成的軟件編程和觸摸屏的組態(tài)畫面設(shè)計(jì)。經(jīng)過(guò)實(shí)驗(yàn)調(diào)試,該系統(tǒng)能夠?qū)崿F(xiàn)工作人員不同權(quán)限登錄密碼設(shè)置,實(shí)時(shí)數(shù)據(jù)、故障報(bào)警的顯示,閉環(huán)PID參數(shù)的在線修改等功能,且系統(tǒng)能夠穩(wěn)定的運(yùn)行。

          在現(xiàn)代工業(yè)控制中,最常用的人機(jī)接口界面依然采用的是鍵盤和液晶相結(jié)合的方式,要讓觸摸屏取代以前的人機(jī)接口界面,還存在一定的問(wèn)題。在實(shí)際應(yīng)用中,觸摸屏一般是針對(duì)可編程控制器PLC設(shè)計(jì)的,所以DSP與觸摸屏不能直接通信,必須根據(jù)觸摸屏的通信協(xié)議開發(fā)相應(yīng)的通信程序。本文研究基于MODBUS協(xié)議的觸摸屏和DSP的通信方法,其中DSP使用TI公司的,觸摸屏使用維控科技的LEVI700L.

          1 DSP與觸摸屏的硬件電路連接

          TI公司的芯片有兩組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ì)中采用,串口參數(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ì)


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();