陳翰揚,張金龍
(南京師范大學 電氣與自動化工程學院,江蘇 南京 210020)
隨著互聯(lián)網(wǎng)技術的發(fā)展更新,人與物的交互逐漸智能化,其中,觸摸屏是重要媒介。實際應用中,觸摸屏通常與 PLC 相互配合使用,但是 PLC 相對成本高,體積大, 更適宜在工業(yè)場合使用而不適宜家用。以觸摸屏為基礎,輔以數(shù)字信號處理技術設計一個匯集各種家電控制方式的總控系統(tǒng),不失為一種化繁為簡,統(tǒng)籌兼顧的可行方案。故本系統(tǒng)嘗試將觸摸屏與 DSP 相配合,充分利用觸摸屏的顯示功能和 DSP 的數(shù)據(jù)處理能力,達到輕便易操作的效果[1]。作為筆者學習研究觸摸屏與 DSP 的一個階段性成果, 通過 DSP 軟件編程和觸摸屏的畫面設計,從而控制小電機的轉速,以此模擬實際家用觸摸屏控制小型高速新風系統(tǒng)的情景。
本系統(tǒng)采用的是迪文DGUS屏和數(shù)字信號處理器TMS320F28335。系統(tǒng)的完成首先需要構建好觸摸屏工程、設計界面、設置觸控元件,然后將觸摸屏與 DSP 進行串口連接。觸摸屏通過觸屏操作發(fā)送數(shù)據(jù)信息給 DSP,DSP 接收到數(shù)據(jù)幀后經(jīng)過程序處理得到用戶側需要的轉速并轉化為 PWM 的占空比輸出,從而達到控制電機的目的。故本系統(tǒng)中最重要一環(huán)為兩者之間的通信協(xié)議設計。整體結構框架,如圖1所示。
圖1 整體結構
觸摸屏作為當今使用范圍最廣,用戶體驗最好,技術生態(tài)最為成熟的人機交互方式之一,無疑也是未來人機交互的主要潮流。本系統(tǒng)采用的是迪文DGUS屏。
DGUS 是迪文圖形應用軟件(DWIN Graphic Utilized Software)的縮寫。DGUS 屏是由北京迪文科技有限公司基于K600+內核驅動的智能屏自主研發(fā)的性能優(yōu)異的智能屏,具有可靠、穩(wěn)定、功能性強、易用性良好等多個優(yōu)點,并且界面設計簡單,文件配置方便。
DGUS開發(fā)體系是由DGUS屏和DGUS開發(fā)軟件構成的。與傳統(tǒng)的HMI不同,迪文DGUS是迪文自己獨有的、固化在硬件中的專用界面設計軟件,包括界面圖形設計和觸控元件的選擇。
利用繪圖軟件對界面、圖標、字體庫、按鈕樣式等進行設計,并通過PC端開發(fā)軟件對界面上的控件進行配置。DGUS 提供FLASH儲存空間以存儲參數(shù)配置文件、圖片文件、聲音文件、字庫文件、圖標庫等;在DGUS中可快速配置數(shù)據(jù)和文字的顯示及輸入,同時也具有動畫顯示,圖標顯示,曲線顯示等多種功能[2]。
本系統(tǒng)主要界面分為功能選擇界面與參數(shù)調節(jié)界面,圖2(a)為功能選擇界面,點擊不同圖標可進入不同模式;圖2(b)為參數(shù)調節(jié)界面,點擊加減可以調節(jié)檔位,滑條為快速調節(jié)方式。
(a)
所謂數(shù)據(jù)的串行傳輸就是由建立在線路鏈接,接口等的物理層,和建立在物理層上的數(shù)據(jù)協(xié)議共同構成的一種傳輸方式。數(shù)據(jù)在傳輸中只有1個數(shù)據(jù)位會在設備之間進行的傳輸,而對其他任何一個由若干位二進制表示的字符,串行傳輸都是用一個傳輸信道,按位有序地對字符進行傳輸[3]。通信中的數(shù)據(jù)往往都會以數(shù)據(jù)包的形式進行傳送,這樣的數(shù)據(jù)包又被稱為數(shù)據(jù)幀。一個可靠的數(shù)據(jù)幀通常由幀頭、地址信息、數(shù)據(jù)類型、數(shù)據(jù)長度、數(shù)據(jù)塊、校驗碼、幀尾組成。
F28335 內部有3路專用的串行通信模塊SCIA、SCIB、SCIC,它們是雙線異步串行端口,具有兩個引腳:發(fā)送引腳SCITXD用于實現(xiàn)數(shù)據(jù)的發(fā)送;接收引腳SCIRXD用于實現(xiàn)數(shù)據(jù)的接收,如圖 3 所示。SCI 模塊則具有雙緩沖接收和發(fā)送功能,發(fā)送緩沖寄存器為 SCITXBUF,接收緩沖寄存器為 SCIRXBUF[4]。應實際工程需要,僅使用一路 SCIC 進行通信,同時由于本系統(tǒng)沒有必要進行長距離通信,為節(jié)省成本采用 RS-232 協(xié)議。
圖3 SCI模塊
本系統(tǒng)設計主要討論的是觸摸屏與 DSP 之間的通信問題,因而主要介紹其串口操作。DGUS屏次選擇異步、全雙工串口(UART),串口模式為8n1,即每個數(shù)據(jù)傳送采用十個位,包括1個起始位,1個停止位,8個數(shù)據(jù)位。串口的波特率可通過 SD 卡中的文件配置。串口所有指令或數(shù)據(jù)都采用16進制格式;對于字型(2 字節(jié))數(shù)據(jù),總是優(yōu)先采用高字節(jié)先傳送方式,如 0x2019 現(xiàn)傳送0x20。
下面將對數(shù)據(jù)幀格式和指令集進行具體說明解釋:
迪文DGUS屏的串口數(shù)據(jù)幀由5個數(shù)據(jù)塊構成,見表1。
表1 數(shù)據(jù)幀格式
其中,幀頭為整個數(shù)據(jù)幀的識別標志和上位機的地址,占兩字節(jié),經(jīng)寄存器內部配置定義。DSP 查詢到幀頭有效,則接受該幀,否則丟棄;DSP上傳數(shù)據(jù)時,只有數(shù)據(jù)幀地址與觸摸屏內部配置一致時,才會接受該幀。
①等待接收(或發(fā)送)信號置位; ②將接收(發(fā)送)寄存器里的數(shù)據(jù)賦值給預先定義好的變量中。
①檢測幀頭,無誤則繼續(xù)以下步驟,否則丟棄該幀數(shù)據(jù)。重新等待檢測幀頭。②讀取數(shù)據(jù)長度n,并創(chuàng)建長度為n的數(shù)組以存儲之后的n個字節(jié)的數(shù)據(jù)。③讀取數(shù)據(jù)并存儲。④取出存在數(shù)組第一個字節(jié)的指令字節(jié),以確定該數(shù)組后續(xù)數(shù)據(jù)的形式。⑤將后續(xù)數(shù)據(jù)按照指令重新組合成為例如變量儲存器地址之類的具有實際意義的數(shù)據(jù)。⑥將數(shù)據(jù)賦予對應變量備用。
完整軟件流程,如圖4所示。
圖4 軟件流程