新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 遠程終端中通信控制卡的設計與實現

遠程終端中通信控制卡的設計與實現

作者: 時間:2004-12-07 來源:網絡 收藏
摘要:介紹了一種多臺單片機與PC機的方法,給出了通過一塊與多臺單片機的實時,并將數據上傳給上位機以提高通信可靠性和效率的方法,同時給出了該通信的硬件接口電路和軟件框圖。

關鍵詞:單片機;智能模塊;串口通信

1 概述

PC機與多臺單片機構成小型的分布式測控系統(tǒng)已在工業(yè)控制、生產管理中得到了廣泛的應用。在這類應用系統(tǒng)中,PC機多作為上位機通過直接查詢來控制各從機。由于PC機本身還要進行動態(tài)數據顯示、數據庫實時錄入、越限報警、報表打印等任務,因此,當從機數目過多時,上位機頻繁地響應從機的中斷,并在一定時間內等待和接收數據?這極大地影響了PC機的工作效率。為了提高上位機的工作效率,筆者在PC機與各個智能模塊間增加了一塊用AT89C51作為微控制器的通信。整個系統(tǒng)構成一個3級分級控制系統(tǒng),通信控制卡位于中間層,它是系統(tǒng)控制、管理的中樞。

2 通信控制卡硬件電路

在本系統(tǒng)中,通信控制卡采用查詢方式對下位機的各智能模塊進行查詢,該智能模塊由AT89C51控制的電量、溫度、液位、開關量采集板構成,它們分別可獨立完成各自的數據采集和處理任務。當處于被查詢狀態(tài)時,系統(tǒng)可采用中斷方式與通信卡進行通信。通信卡依次為人機完成各種數據處理任務提供各種數據和控制命令,然后把它們統(tǒng)一打包上傳給上位機,從而使上位機可以對其進行顯示、加工和處理,并形成各種報表。

該系統(tǒng)的硬件接口電路如圖1所示。其中控制卡的核心芯片是AT89C51,它利用本身自帶的串口與各智能模塊間通過多機通信方式3進行總線式多機通信。為了同時能與PC進行通信,另一端通過8251A的擴展串口與PC相連。即要求8251A芯片的接收數據線RXD(腳3)及發(fā)送數據線TXD(腳19)通過MAX232與PC相連?這是因為電平轉換器8251A的輸入、輸出均為TTL電平,而通過電平轉換器可將TTL電平轉換成RS232C標準電平以便與PC進行通信。

8251A芯片的時鐘輸入線CLK可為其提供定時信號。在異步方式時,CLK的頻率至少應大于8251A內接收器或發(fā)送器輸入頻率的4.5倍。其引腳RXC(腳25)為接收器時鐘,它的作用是控制字符的發(fā)送速率,其時鐘可使用8253產生的合適時鐘頻率。在異步方式中,引腳RXC和TXC(即接收、發(fā)送時鐘)為波特率的16倍。該控制卡中擴展的8kB RAM可分別開辟4個不同的存儲電量采集板的數據,處理時可以將它們一起送到PC。

3 軟件系統(tǒng)

3.1 通信協(xié)議

通信控制卡的AT89C51串口與各智能模塊的通信按自定義的通信協(xié)議進行。過程如下:

(1)首先使所有從機SM2位置1,以使其處于只接收地址幀的狀態(tài)。

(2)控制卡先發(fā)一地址信息,其中8位為地址,第9位為地址/數據信息的標志位,該位為1表示該幀為地址信息。

(3)從機接收到地址幀后,會將其接收的地址與本從機的地址相比較。對于地址相符的從機,可置SM2=0,以接收主機隨后發(fā)來的所有信息;而對于地址不相符的從機,則置SM2=1,以繼續(xù)執(zhí)行采集任務和其它任務。

(4)當從機發(fā)送數據結束后,會發(fā)送一幀校驗和,并將第9位(TB8)置為1,以作為從機數據傳送結束標志。

(5)控制卡接受數據時,先判斷數據結束標志(RB8),若RB8=1,且校驗正確,則回送正確信號00H,此信號可令該從機復位以重新采集數據,等待地址幀。若校驗和出錯,則送0FFH,以令該機重發(fā)數據,如果重發(fā)5次還不行,則認為失敗,并轉入其它地址。若接收幀的RB8=0,則將原數據鎖定到緩沖區(qū),并準備接收下幀信息。

(6)從機接收到復位命令后,再回到監(jiān)聽地址狀態(tài)(SM2=1)。

3.2 程序框圖

設主機發(fā)送的地址信號01H、02H、03H為從機設備地址,地址FFH是命令各從機恢復SM2為1的狀態(tài)信號,即復位。從機的命令編碼為:

01H―請求從機接收通信卡的數據命令;

02H―請求從機向通信控制卡發(fā)送數據;其它均按從機向通信卡發(fā)數據處理。

從機的狀態(tài)字節(jié)格式如圖2所示。其中TRDY為1表示從機已準備好接收通信卡的數據(見圖2中D1位);RRDY為1表示從機準備好向通信卡發(fā)送數據(見圖2中D0位);而ERR=1則表示從機接收到的命令是錯誤的(圖2中D7位)。

該通信控制卡與各智能模塊均采用12MHz晶振,它們之間的波特率為4800bps,采用定時器T1的工作方式2,這樣,當TL1計滿時,TH1將自動送數給TL1。當波特率為4800bps時,TH1=TL1=0xf3。而通信卡與PC間的波特率為9600bps,故可用產生的脈沖8分頻后送到8253。8253工作在方式3,它產生的周期性方波送給8251A的TXC、RXC,可作為波特率發(fā)生器。用C51的通信卡和從機的程序流程圖如圖3和如圖4所示。該通信卡采用查詢方式,從機采用中斷方式進行相互通信,并采用校驗方式進行數據校驗,然后將數據打包,上傳給上位PC。

本設計已用于鐵路調度監(jiān)督系統(tǒng)單元中的控制信息采集板和開關量采集板,以及鐵路微機聯(lián)鎖系統(tǒng)中的上位機控制和模擬屏動態(tài)實時顯示等方面。整個系統(tǒng)實際運行良好,可靠性高,系統(tǒng)性能得到很大的改善



評論


相關推薦

技術專區(qū)

關閉