新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于串行通信的智能家居上位機設計

        基于串行通信的智能家居上位機設計

        作者: 時間:2010-09-22 來源:網絡 收藏

        0 引言
        系統的一個重要組成部分,擔負著管理、控制、維護和用戶界面操作的重任,高效可靠的是整個系統正常運作的重要保障。機與系統的實際上是與下端單片機的。單片機或單片機系統是控制的核心,當計算機作為單片系統的一個角色時,通常被稱為“工控機”或“上位機”,各獨立的單片機是系統中實現功能的一個模塊,所以有時也稱單片機為模塊。
        計算機與單片機是通過串口來實現的,本文著重討論計算機與單片機的串口通信的實現方法和MSComm控件技術。

        1上位機在系統的角色
        首先,必須認識計算機在智能家居系統的作用,可以概括為以下幾個方面:
        1.1 通信測試工具
        傳統的單片機系統的通信測試通過示波器來監測,既不直觀又容易丟失信息。將計算機加入到系統中,可以實時監測到線路中的信息,并以數字化呈現,使各個單片機間的通信得到檢驗,及時解決系統存在的問題。所以計算機在加速系統的開發和保證系統的運行質量的作用就不言而喻了。
        1.2 系統維護
        一個單片機系統往往需要對系統中各個不同功能的模塊(單片機)進行參數的設置,以適應不同的運行環境,雖然可以通過各模塊的控制面板來調整,但操作通常比較麻煩,非專業人員不易掌握。同時對于一些需要定義其地理位置的參數難以實現,不夠直觀。計算機加入到系統中,不但可以解決操作上的問題,同時還可以讀取各模塊的參數,以便于調整。
        1.3 單片機
        計算機可以作為單片機系統的一個模塊,完成相應的功能。計算機應答系統的請求、處理系統中的信息,一方面將信息呈現給用戶,另一方面計算機程序通過自動計算或用戶的輸入,將信息反饋到系統中,參與系統的控制。
        1.4 主控機
        在單片機系統中,往往存在一個主控機或主控模塊,負責對整個系統的統籌和設置。單片機系統通常是通過各功能模塊的輸入和響應來實現其功能的,因此必須有一個負責收集輸入任務并指定響應模塊的主控模塊。計算機系統中既可以是一個普通的模塊,又可以是負責總體協調的主控器。

        2 通信協議
        一個單片機系統是由硬件系統和軟件系統構成的。硬件是實現功能的前提,而系統功能則是通過軟件來實現的,為了保證各個模塊通信,實現系統信息交流,必須制訂系統的通信協議。
        從物理上來說,系統各模塊是以半雙工的模式來通信的,下文提及的智能照明系統下端模塊就是以半雙工的RS 485總路線為通信架構的。而計算機的RS 232串口是以全雙工的模式來實現通信的,因此,計算機要通過串口參與到單片機系統中必須增加一個RS 232和RS 485總線轉換的模塊。
        從邏輯上講,要實現各模塊之間的通信,就必須在模塊間約定一個共同遵守的通信協議。單片機以位(b)為基本單位,傳輸時以8位1字節(B)來傳輸,單片機以毫秒間距發送若干個字節為一個數據包,也稱為一幀,幀之間又規定若干毫秒的間隙。通過計算機程序可以捕獲線路中每一幀信息。
        下面以智能照明系統為例,講述單片機系統的通信協議。
        本協議采用異步通信方式,字節幀格式:1個起始位+8個數據位+1個停止位,無校驗位。
        幀格式如下:
        l幀=幀頭(F4H F5H)+數據包+幀尾(F4HFBH)255B
        數據包=有效字節數(1B)+傳輸層數據+校驗和(1B)251B
        幀數據的發送、接收過程中前后兩字節數據傳送延時不得超過O.5s。
        各模塊分配兩個字節的地址碼,第一字節代表模塊類型,第二字節代表模塊在系統中分配的順序。各模塊獲取總線上的幀后,對自己的地址幀響應,其他的幀拋掉。
        以下是本協議中的關于“燈開停控制”的協議:
        描述:該信息是輸出子模塊的各路燈的開或關控制。
        構成:該信息發送時由信息頭和信息內容構成,返回時由信息頭構成。
        主控器或PC機發給輸出模塊時:

        本文引用地址:http://www.104case.com/article/157065.htm

        系統的通信按照規定的各條協議來執行。

        3 計算機通信的實現
        計算機硬件上通過RS 232與RS 485接口轉換與下端模塊進行通信。而軟件的實現有多種方法,下面主要介紹在VB 6.0通過MSComm控件來實現通信的方法。
        3.1 將MSComm控件引入到VB平臺
        MSComm控件通過端口傳輸和接收數據,為應用程序提供通訊功能。MSComm控件在串口編程時非常方便,程序員不必去花時間去了解較為復雜的API函數,而且在VC,VB,Delphi等語言中均可使用。
        MSComm是Mierosoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應用程序提供了通過串行接口收發數據的簡便方法。具體的來說,它提供了兩種處理通信問題的方法:一是事件驅動(Eventdriyen)方法,一是查詢法。
        3.2 MSComm控件的設置
        3.2.1 MSComm控件的屬性

        MSComm控件有很多重要的屬性,正確設置其屬性是程序進行正常通信的保證,下面介紹幾個必須熟悉的屬性。
        CommPort:設置并返回通訊端口號。
        Settings:以字符串的形式設置并返回波特率、奇偶校驗、數據位、停止位。
        PortOpen:設置并返回通訊端口的狀態,也可以打開和關閉端口。
        Input:從接收緩沖區返回和刪除字符。
        InputMode:接收模式,取O值時,接收文本數據;取1時,接收二進制數據。
        Output:向傳輸緩沖區寫一個字符串。
        Rthrehold:響應模式,取整數。當接收字符后,若Rthrehold屬性設置為O,則不產生OnComm事件;若設置為1,則接收緩沖區收到每一個字符都會使MSComm控件產生OnComm事件。
        Sthreshold:發送模式,設置O(缺省值),數據傳輸事件不會產生OnComm事件;設置為1,當傳輸緩沖區完全空時,MSComm控件產生OnComm事件。如果在傳輸緩沖區中的字符數小于value,CommEvent屬性設置為comEvSend,并產生OnComm事件。
        Handshake:通信握手模式,取值為O時,無握手;取值為1時,表示XOn/Xoff握手;取值為2時,表示Request-to\-send/clear-to-send握手;取值為3時,表示eqLlest-to-send&clear-to-send握手皆可。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 江川县| 通河县| 康定县| 兰西县| 乐安县| 襄垣县| 青神县| 新丰县| 黄骅市| 巴青县| 会理县| 星座| 永吉县| 仪征市| 沛县| 高邑县| 玉屏| 得荣县| 沙洋县| 休宁县| 综艺| 昂仁县| 宣汉县| 扬中市| 定兴县| 安顺市| 武邑县| 崇信县| 定远县| 会理县| 襄汾县| 江孜县| 克东县| 大埔县| 桑日县| 嘉义县| 锡林郭勒盟| 澄江县| 射洪县| 青铜峡市| 乌审旗|