基于W77E58單片機的通用數據采集和通訊儀的設計
為了使設計的數據采集儀應用方便,系統利用PTR2000無(wú)線(xiàn)數據傳輸模塊與上位機進(jìn)行通訊,以便能隨時(shí)響應控制中心的PC機的數據上傳命令,將采集到的數據實(shí)時(shí)上傳給控制中心。PTR2000是一種超小型、低功耗、高速率的無(wú)線(xiàn)收發(fā)數據傳輸模塊。其通訊速率最高可達20Mbit/s,也可工作在其他速率,如4800bit/s、9600bit/s。系統無(wú)線(xiàn)數據傳輸原理圖如圖6所示。本文引用地址:http://dyxdggzs.com/article/173610.htm
PTR2000可直接與單片機的串口TXD、RXD相連接。PTR2000無(wú)線(xiàn)MODEM的DO和DI引腳分別連接單片機串口的RXD和TXD,這樣單片機就可以和無(wú)線(xiàn)數據傳輸模塊進(jìn)行串行通信。PTR2000的PWR腳和單片機的P1.0腳相連,以便對無(wú)線(xiàn)數據傳輸模塊的電源進(jìn)行管理,TXEN與單片機的P1.1腳連接,控制PTR2000無(wú)線(xiàn)收發(fā)模塊的收發(fā)狀態(tài)轉換。上位機通過(guò)PTR2000與單片機進(jìn)行實(shí)時(shí)通訊。由于上位機串口通常采用RS-232 電平,而單片機串口使用的是TTL電平,故PTR2000與上位機連接時(shí)必須將TTL電平轉換成RS-232電平,系統采用MAXM公司的MAX232芯片進(jìn)行轉換。上位機用串口的RTS與PTR2000的TXEN連接來(lái)控制PTR2000無(wú)線(xiàn)收發(fā)模塊的收發(fā)狀態(tài)轉換。
2 系統軟件設計
系統軟件采用模塊化設計,主程序首先對各接口芯片進(jìn)行初始化,然后分別調用各個(gè)子程序模塊以進(jìn)入各個(gè)數據采集子系統,并將采集到的數據存儲在32K字節的串行E2PROM AT24C256中,以備控制中心查詢(xún),同時(shí)將對應的數據在液晶顯示器上顯示。如果系統接收到上位機的數據上傳命令,就將存儲在E2PROM中的數據通過(guò) PTR2000發(fā)送給PC機。系統主程序流程如圖7所示。
串口通信程序中雙方通信協(xié)議是至關(guān)重要的,這關(guān)系到無(wú)線(xiàn)數據傳輸的可靠性,本系統約定雙方的通信協(xié)議格式如下:串行通信使用單片機的內部定時(shí)器/計數器1 作為波特率發(fā)生器,本系統波特率設定為4800 bit/s;幀格式為1位起始位,8位數據位,1位停止位,無(wú)奇偶校驗;通信采用中斷方式;上位機采用COM 1通信。在設計時(shí),數據傳輸通道也采用光電隔離來(lái)提高系統的抗干擾能力,并且采用了CRC校驗以確保數據傳輸的準確。單片機系統初始化時(shí),將單片機的 P1.1腳設置為低電平,這就可使得在默認狀態(tài)下,PTR2000處于接收狀態(tài),以便時(shí)刻監聽(tīng)上位機的數據上傳命令。當接收到上位機的命令后,中斷服務(wù)程序將數據從單片機數據緩沖區取出,同時(shí)將模塊的接收狀態(tài)切換為發(fā)射狀態(tài),轉換過(guò)程所需時(shí)間約5ms,然后將這些數據以FSK的調制形式發(fā)射出去, PTR2000模塊隨后恢復為接收狀態(tài)。從單片機系統發(fā)射的數據經(jīng)上位機系統中的PTR2000接收,由RS232接口進(jìn)行電平轉換,送進(jìn)上位機,上位機對數據進(jìn)行分析和處理后,向單片機系統發(fā)送一個(gè)確認數據包,以確認單片機系統數據包的正確性。上位機接收完數據后,它的PTR2000模塊又恢復為常發(fā)射狀態(tài)。如果數據在傳輸的過(guò)程中有數據丟失,上位機將要求單片機系統重新發(fā)送數據,直到數據全部正確為止,串行中斷服務(wù)程序如圖8所示。
3 結束語(yǔ)
本文利用8位單片機設計的通用數據采集系統,可以作為工業(yè)現場(chǎng)的遠程監控終端來(lái)使用,也可以方便的設計成便攜式智能數據采集和通訊儀表,由于數據傳輸采用了無(wú)線(xiàn)方式,使其能夠非常廣泛的應用于工業(yè)上需要數據采集的場(chǎng)合,具有比較高的實(shí)際應用價(jià)值。
評論