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

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 收費系統(tǒng)中PC機(jī)與LED顯示屏的串行通信

          收費系統(tǒng)中PC機(jī)與LED顯示屏的串行通信

          ——
          作者:郭欣 王長清 顧紅 劉國歲 南京理工大學(xué)電子工程技術(shù)研究中心 (南京210094) 時間:2007-01-26 來源:《電子工程師》 收藏

          近年來路橋收費管理系統(tǒng)不斷地向自動化、智能化的方向發(fā)展,它除了要完成基本的收費功能外,還需要對一些外部設(shè)備進(jìn)行管理。這些外部設(shè)備是收費站與車輛司乘人員最直接的交流窗口,它不僅要控制車輛的放行和禁止,而且還要能夠給出有關(guān)車輛的車型、收費金額等提示信息。這些信息的給出是由信號燈、led顯示屏、數(shù)碼管顯示器、語音報價器等外設(shè)來完成的。

          本文引用地址:http://www.ex-cimer.com/article/20749.htm

          在我們所設(shè)計的路橋收費管理系統(tǒng)中,道口工作站對這些外部設(shè)備的控制是通過兩者之間的串行通信實現(xiàn)的。下面我們僅以led顯示屏為例,介紹工作站與外設(shè)的串行通信實現(xiàn)方案以及l(fā)ed顯示字符點陣數(shù)據(jù)的提取方法。 1道口工作站與led顯示屏的串行通信

          為了實現(xiàn)道口工作站和led顯示屏的串行通信,我們首先在兩者之間定義了一個通信協(xié)議 。在本協(xié)議中主控器即道口工作站的pc機(jī)程序由vb語言編寫,被控器單片機(jī)程序由c51語言編寫。該串行通信是在pc機(jī)的rs-232串行口和mcs-51系列單片機(jī)的uart串行口之間進(jìn)行的。下面首先給出通信協(xié)議的定義。

          1.1通信協(xié)議

          (1)通信常量的定義

          通信常量的定義見表1。

          當(dāng)主控器或被控器發(fā)送命令時,對前幾個需要發(fā)送的字節(jié)作異或處理得到bcc校驗碼 ,并將該校驗碼作為最后一個字節(jié)發(fā)送。接收命令時,接收方對收到的所有字節(jié)進(jìn)行異或處理,若為零,則表示數(shù)據(jù)傳輸無誤,否則進(jìn)行出錯處理?!?br>
          (2)主控器寫命令執(zhí)行方式
          主:

          (若末收到被控器發(fā)出的ack或收到的bcc校驗出錯,該命令重發(fā)一次,共允許重發(fā)三次)

          (若收到被控器發(fā)出的nac或接收的bcc校驗出錯,該命令重發(fā)一次,共允許重發(fā)三次)

          (4)錯誤定義

          信息傳輸失敗:主控器發(fā)出一條信息后收到被控器的錯誤應(yīng)答(包括校驗出錯),計為一次傳輸失敗。

          超時:主控器發(fā)出一條信息后,過0.5s被控器無回音;被控器發(fā)出一條信息后,過0.1s主控器無回音。 超數(shù):一條信息傳輸失敗,重試三次仍失敗。

          (5)錯誤處理

          當(dāng)主控器收到被控器的錯誤應(yīng)答(包括校驗出錯)時,在不超數(shù)的情況下,主控器將重新發(fā)送命令。若被控器超時一次,計為信息傳輸失敗一次。若被控器超數(shù),則丟失本次傳輸所有數(shù)據(jù),回到正常工作狀態(tài)。

          1.2 通信程序的編寫

          根據(jù)通信協(xié)議,我們使用vb語言在主控器pc機(jī)的通信窗體中共編寫了三個函數(shù):通信的初始設(shè)置函數(shù)、主控器寫命令函數(shù)、主控器讀命令函數(shù)。其中初始設(shè)置函數(shù)主要完成串口的打開與關(guān)閉、通信端口號的設(shè)置以及波特率、校驗方式、數(shù)據(jù)位、停止位的設(shè)置等。主控器寫命令函數(shù)主要完成工作站的pc機(jī)向led顯示屏發(fā)送各種需要顯示的問候語以及收費金額、余額等信息。主控器讀命令函數(shù)主要用于讀取led顯示屏的狀態(tài)信息。

          在該通信窗體中,我們使用了一個active x控件mscomm,該控件通過串行端口發(fā)送和接收數(shù)據(jù),下面是有關(guān)該控件的一些屬性說明。

          圖1給出了主控器寫命令函數(shù)的程序流程圖。由圖1可知,在整個通信過程中,我們在主控器pc機(jī)的程序里設(shè)置了三個出錯檢測點:a)檢測被控器·發(fā)出的ack信號以及bcc校驗是否正確;b)檢測被控器的響應(yīng)是否超時;c)檢測信息傳輸失敗是否連續(xù)超過3次。經(jīng)過我們的實踐證明,該串行通信實現(xiàn)方案較好地保證了信息傳輸?shù)目煽啃?,運行也非常穩(wěn)定。

          2 led顯示字符點陣數(shù)據(jù)的提取

          一般來說,路橋收費管理系統(tǒng)中l(wèi)ed顯示屏并不需要顯示整個字模庫中的字符,而只需顯示某些特定的漢字和數(shù)字字符,如各種提示信息、收費金額、固定的問候語等。因此為了簡化led部分的電路規(guī)模、降低成本,我們只需提取所需的特定字符的點陣數(shù)據(jù)。

          在我國的漢字字模庫中,每一個字符,包括漢字、數(shù)字、英文字母等都是按照區(qū)位碼的順序存儲的,因此提取所需的特定字符的點陣數(shù)據(jù)可以采用兩種方法,一是首先從區(qū)位碼表中查出需要顯示的每一個字符的區(qū)位碼,然后根據(jù)這些區(qū)位碼采用文件定位的方式從漢字字模庫中提取出點陣數(shù)據(jù);另一種方法是對每一個顯示字符,根據(jù)其ascii碼和區(qū)位碼的關(guān)系首先獲得該字符的區(qū)位碼,然后根據(jù)區(qū)位碼提取出點陣數(shù)據(jù)。相對而言第二種方法比較靈活方便 ,而且也節(jié)省了設(shè)計者的時間。

          下面以16×16點陣漢字字模庫為例,給出vb語言編寫的獲得特定字符點陣數(shù)據(jù)的具體程序

          以上介紹了pc機(jī)和led顯示屏的串行通信實現(xiàn)方案以及l(fā)ed顯示字符點陣數(shù)據(jù)的提取方法,其中本方案中提及的通信協(xié)議也可以應(yīng)用于pc機(jī)和其他外設(shè)的串行通信,有效地保證數(shù)據(jù)傳輸?shù)目煽啃?。?dāng)led并不需要顯示整個漢字字模庫中的字符時,可以采用本文提供的點陣數(shù)據(jù)的提取方案,但是在某些情況下,若led需要顯示所有的國標(biāo)一級漢字字符,則可以直接采用文件定位的方法從第1區(qū)開始提?。ù藭r提取的點陣數(shù)據(jù)包含有英文字母和數(shù)字等非漢字字符),也可以從第16區(qū)開始提取數(shù)據(jù)(此時提取的全部是漢字?jǐn)?shù)據(jù))。在實際應(yīng)用中,讀者可以根據(jù)自己的需要對串行通信協(xié)議以及點陣數(shù)據(jù)的提取方法進(jìn)行選擇和修改。

          led顯示器相關(guān)文章:led顯示器原理




          關(guān)鍵詞: 發(fā)光二極管 LED

          評論


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