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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 捷達(dá)汽車組合儀表的串行通訊的實(shí)現(xiàn)

          捷達(dá)汽車組合儀表的串行通訊的實(shí)現(xiàn)

          作者: 時間:2013-02-17 來源:網(wǎng)絡(luò) 收藏
          1 引 言

          在開發(fā)汽車儀表檢測設(shè)備的過程中,非常重要的工作就是實(shí)現(xiàn)工控機(jī)與汽車儀表的。通過可以實(shí)現(xiàn)對儀表軟、硬件版本的檢測、儀表里程清零及儀表調(diào)校等一系列儀表出廠前重要的檢測項(xiàng)目及參數(shù)設(shè)定。對應(yīng)于"新捷達(dá)"型(西門子VDO公司產(chǎn)品),為實(shí)現(xiàn)技術(shù)安全性,故其串行口采用非標(biāo)準(zhǔn)協(xié)議,是用一般的串口通訊控件所難以實(shí)現(xiàn)的,必須由熟悉儀表軟件結(jié)構(gòu)的人員從底層編寫通訊程序。

          本文采用C++Builder開發(fā)平臺,在Windows 98操作系統(tǒng)下,成功實(shí)現(xiàn)了與"新捷達(dá)"型的通訊,并具有美觀簡潔的用戶操作界面。 2 New Jetta型儀表串行通訊要求簡述

          2.1 硬件連接

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

          2.2 軟件規(guī)范

          軟件規(guī)范關(guān)于串口數(shù)據(jù)通訊協(xié)議中包括了通信握手、多重校驗(yàn)、出錯重發(fā)、超時處理等。

          2.2.1 通訊初始化

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

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

          經(jīng)過100ms儀表送出同步字節(jié)(1個起始位,8個數(shù)據(jù)位,1個停止位,為* * H),再經(jīng)過loms儀表送出密碼的低字節(jié),10ms后儀表送出密碼的高字節(jié)(1個起始位,7個數(shù)據(jù)位,1個奇偶校驗(yàn)位,1個停止位,密碼值為* * * *H)。

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

          當(dāng)儀表接收到回送字節(jié)后,標(biāo)準(zhǔn)模塊通訊以10 400b/s的波特率起動(每字節(jié)包含1個起始位,8個數(shù)據(jù)位,1個停止位)。此時,儀表開始發(fā)送儀表ID模塊,為4個模塊,分別包括16,16,15,9個字節(jié)。在這4個模塊的發(fā)送過程中,儀表與工控機(jī)之間又有很多的信息應(yīng)答要求,如有差錯則通訊中止。

          2.2.2 正常通訊過程

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

          3 軟件程序設(shè)計

          本通訊方式屬于零Modem串行異步通訊。在異步通訊中,字符格式和波特率是2個重要指標(biāo)。本文中通訊過程既有波特率的變化,也有幀格式的變化,對通訊的響應(yīng)時間也有嚴(yán)格要求。

          在C++Builder可視化編程格式下不再支持直接對寄存器操作的函數(shù),故首先用嵌入?yún)R編的辦法實(shí)現(xiàn)Inporb和Outporb函數(shù)。本通訊的數(shù)據(jù)流是以字節(jié)為發(fā)送單位的,故編寫字節(jié)收發(fā)函數(shù),為查詢方式,如清單1所示:

          清單1:

          byte TForml∷bytReceiveByte(void)
          {
          byte bytTemp; //Dim bytTemp As Byte
          int intTemp; //Dim intTemp As Integer
          byte bytResult;
          bytTemp=InportB(intLSR);//intLSR=0x3fd
          intTemp=0;
          blnBeyond WaitTime=False;
          while((bytTemp0x1)!=0x1)
          {
          bytTemp=InportB(intLSR);
          intTemp=intTemp+1;
          S1eep(1);

          上一頁 1 2 下一頁

          評論


          相關(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); })();