新聞中心

        EEPW首頁 > 汽車電子 > 設計應用 > “新捷達“型汽車組合儀表的串行通訊的實現

        “新捷達“型汽車組合儀表的串行通訊的實現

        作者: 時間:2012-07-25 來源:網絡 收藏

        1 引 言

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

        在開發儀表檢測設備的過程中,非常重要的工作就是實現工控機與儀表的。通過可以實現對儀表軟、硬件版本的檢測、儀表里程清零及儀表調校等一系列儀表出廠前重要的檢測項目及參數設定。對應于“新”型(西門子VDO公司產品),為實現技術安全性,故其串行口采用非標準協議,是用一般的串口通訊控件所難以實現的,必須由熟悉儀表軟件結構的人員從底層編寫通訊程序。

        本文采用C++Builder開發平臺,在Windows 98操作系統下,成功實現了與“新”型汽車的通訊,并具有美觀簡潔的用戶操作界面。

        2 NewJetta型儀表串行通訊要求簡述

        2.1 硬件連接

        文中工控機與儀表的硬件連接是從儀表的K-line經過電平轉換器連接工控機的RS-232串行口,采用半雙工串行異步通訊方式。如圖1所示。

        2.2 軟件規范

        軟件規范關于串口數據通訊協議中包括了通信握手、多重校驗、出錯重發、超時處理等。

        2.2.1 通訊初始化

        當儀表點火信號端起動約2 s后可以建立通訊響應。首先以5 b通訊速率發送信息,該信息包含1個起始位,7個數據位,1個奇偶校驗位和1個停止位(向儀表發送**H)。

        儀表收到該信息后大約要等待一個約5 ms的循環時間,然后通訊模塊起動。從此時起所有的通訊字節將以10 400 b/s的波特率來收發(此波特率為非標準波特率)。

        經過100 ms儀表送出同步字節(1個起始位,8個數據位,1個停止位,為**H),再經過10 ms儀表送出密碼的低字節,10 ms后儀表送出密碼的高字節(1個起始位,7個數據位,1個奇偶校驗位,1個停止位,密碼值為****H)。

        此后,儀表等待工控機送回倒序的密碼高字節。這種回送方式是本串行通訊的防錯處理機制。如果此字節儀表沒有接收到,那么儀表將再次發送同步字節和密碼字節。

        當儀表接收到回送字節后,標準模塊通訊以10 400 b/s的波特率起動(每字節包含1個起始位,8個數據位,1個停止位)。此時,儀表開始發送儀表ID在這4個模塊的發送過程中,儀表與工控機之間又有很多的信息應答要求,如有差錯則通訊中止。

        2.2.2 正常通訊過程

        經過通訊初始化后,正常通訊以10 400 b/s的波特率開始建立,此時工控機可以發送命令字節流給儀表,來實現對儀表的控制及參數設置。每隔特定的時間間隔,儀表與工控機間仍須互送握手信號,否則通訊中止。

        3 軟件程序設計

        本通訊方式屬于零Modem串行異步通訊。在異步通訊中,字符格式和波特率是2個重要指標。本文中通訊過程既有波特率的變化,也有幀格式的變化,對通訊的響應時間也有嚴格要求。在C++Builder可視化編程格式下不再支持直接對寄存器操作的函數,故首先用嵌入匯編的辦法實現Inporb和Outporb函數。本通訊的數據流是以字節為發送單位的,故編寫字節收發函數,為查詢方式,如

        11.jpg

        22.jpg

        33.jpg

        44.jpg

        55.jpg

        66.jpg

        77.jpg

        4 結 語

        本文采用C++Builder軟件平臺成功開發了儀表特殊串行口通訊程序,該系統在西門子VDO(蕪湖)公司生產線投入使用一年多,與采用快速通訊方式相比通訊傳輸性能穩定,并具有了方便美觀的用戶界面,為實現儀表檢測設備奠定了基礎,具有重要的應用價值。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 芜湖县| 铁岭市| 衡阳县| 泗阳县| 徐闻县| 济源市| 凤冈县| 温泉县| 七台河市| 泸州市| 体育| 吉木萨尔县| 榆中县| 蒲城县| 柞水县| 盐亭县| 商河县| 扎鲁特旗| 开原市| 贵德县| 杂多县| 高州市| 义乌市| 宝鸡市| 乐都县| 西充县| 集贤县| 临沧市| 盐城市| 广安市| 融水| 海城市| 钦州市| 和田市| 河东区| 宣城市| 许昌市| 安宁市| 开江县| 越西县| 都匀市|