新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于Virtools 和串口通信的界面交互性的設計與實現

        基于Virtools 和串口通信的界面交互性的設計與實現

        作者: 時間:2010-07-08 來源:網絡 收藏

        摘 要:本文介紹了一種采用Virtools 和實現人機界面交互的設計方法。下位機通過 的方式將采集的數據傳給上位機,上位機通過Virtools 的行為模組對這些數據進行處理, 并根據處理結果做出響應,從而實現人機界面的交互。

        1 引言

        用戶界面設計是屏幕產品的重要組成部分,它為人機交互構建了一個溝通環境。其中交互性設 計是用戶界面設計中的重要內容之一。交互設計的目的是讓用戶能夠簡單方便地使用產品,任何產 品功能的實現都是通過人機交互完成的。現以單片機為核心的嵌入式應用中界面交互性設計為例具 體介紹其實現方法。

        2 總體設計方案

        總體設計方案如圖 1 所示。

        圖 1 總體設計圖

        以單片機為核心的下位機主要是負責采集處理數據信息,在接到上位機的數據請求的時候發送 數據給上位機。編寫上位機端的程序,用于處理串口信息并且把處理過后的消息發送給 Virtools。在Virtools 中設計消息解釋執行行為模組,將解釋出的相應動作信息發送給界面控制程序, 最后由其完成屏幕的輸出。同時協調Virtools 中各行為模組的工作,使之達到良好的演示效果。

        3 串口通信設計與實現

        串口通信是指外設和計算機間,通過數據信號線、地線、控制線等,按位進行傳輸數據的一種 通信方式。這種通信方式使用的數據線少。本文的串口通信設計包括下位機端的串口通信模塊和上 位機端的串口通信模塊。

        3.1 下位機的串口通信模塊

        下位機的串口通信模塊通過串口完成與上位機的通信,在接到上位機數據請求后將采集的數據 信息發送給上位機。 在設計中首先設定定時器 T1 為串口波特率發生器,設定波特率為19200bps;上位機發送數據 請求后觸發下位機串口中斷,為了能夠快速的響應上位機的請求,減少上位機的等待,將串口中斷 的優先級設置為最高;下位機會優先調用通信模塊響應該中斷,通信模塊首先判斷請求消息是否正 確,在確定是正確的請求消息后,從緩沖區中取出數據,封裝成一條消息M 消息碼R(如M01R), 通過串口發送給上位機。通信模塊具備一定過濾及容錯能力。

        下面重點介紹一下串口通信模塊的處理方式。

        串口通信模塊采用中斷處理方式,每完整地接收到一個字符或發送完一個字符都會觸發該中斷, 進入到相應的中斷處理函數中。中斷處理函數涉及到接收和發送兩個部分,因此在中斷處理函數開 始的部分就判斷是接收引發的中斷,還是發送引發的中斷。如果是接收中斷,在接收中斷中每接收 一個字符都要判斷,確定是否為上位機發送過來的請求消息,如果不是放棄當前接收到的內容,從 頭開始接收;如果是,則響應上位機的數據請求,將接收態改為發送態,然后向上位機發送通信緩 沖區中的第一個字符,每發送一個字符會產生中斷,在下次中斷中再發送下一字符,按此過程直到 發送完畢。

        3.2 上位機的串口通信模塊

        上位機的串口通信模塊通過串口向下位機發送請求信息,處理下位機返回的數據信息,并將其 發送給處理這些信息的行為模組。這一過程是循環執行的。該程序是與下位機協同工作的唯一接口, 是聯系界面和下位機的橋梁。它的處理流程如圖2 所示。

        圖 2 上位機串口通信模塊處理流程圖

        上位機的串口通信程序是通過調用 Windows 提供的有關串口操作的API 函數完成的。首先創建 了基礎串口類_base_com,在其中實現基本信息配置、打開、關閉串口等基礎功能。為了實現異步發 送和異步接收,在_base_com 類的基礎上派生出異步串口通信類_sync_com 完成異步的數據傳輸。


        上一頁 1 2 3 下一頁

        關鍵詞: 串口通信

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 武宣县| 都江堰市| 璧山县| 怀仁县| 湟源县| 得荣县| 光山县| 名山县| 隆林| 女性| 榆社县| 鄂尔多斯市| 堆龙德庆县| 乌海市| 社旗县| 衡南县| 榆树市| 郴州市| 漳平市| 商河县| 安平县| 扎囊县| 丰城市| 天水市| 楚雄市| 淳安县| 新晃| 登封市| 永宁县| 龙口市| 仁怀市| 丹东市| 长葛市| 罗江县| 宁强县| 大化| 乌鲁木齐市| 沅陵县| 会同县| 郧西县| 五莲县|