圖3 光電隔離抗干擾電路圖
2) 串口服務器的應用模塊。串口服務器是把單片機發出來的數據包轉換為以太網數據報文格式, 然后轉發到Internet 上,實現數據網上傳輸。串口服務器的輸入口是單片機經過MAX232 轉換后的信號,輸出口是RJ45 接口。當串口服務器加電時候,PLED 就會發光; 當輸出口RJ45 與交換機或是PC 正確連接時,LLED 就會發光, 當串口服務器準備就緒時,RLED 就會發光。當對串口服務器進行IP 地址和端口號,串行口工作方式正確設置后,串口服務器方能正常工作,才能進行串行數據與以太網數據包進行轉換, 才能把數據發送到Internet 上的某個主機上。
需要說明的是, 如果串口服務器的RJ45 與計算機直接相連, 需要使用交叉雙絞線, 即網線一端用568A 標準, 另一端用568B 標準。如果串口服務器RJ45 連接的是以太網交換機或是集線器,則使用直通線,即網線兩端都用568A 標準。
2.2 系統軟件設計
系統軟件框圖如圖4 所示。它是由延時、數據采集、數碼顯示、十六進制轉ASCII 碼、數據協議、數據發送等6 個模塊組成。
下面將各個模塊的功能進行簡單概述:
1) 延時模塊。本模塊完成的功能為延時1 s。利用定時器0 溢出中斷完成。
2) 數據采集模塊。每隔一秒對ADC0809 中的一路數據進行采樣,然后將其保存在數據緩沖區中。
3) 數碼顯示模塊。當ADC0809 中與一路數據被采集完畢后,共陰級八段數碼管顯示當前ADC0809 中通道路數,以及當前路數的數據值。
4)十六進制轉ASCII 碼模塊。本子程序完成的功能是把十六進制數轉換為ASCII 碼。
5) 數據協議模塊。本程序完成的功能是將要發送的ASCII 碼數據實現幀封裝,定義數據包的頭和尾,以及中間分隔符,起始字符為“! ”,結束字符為“#”。中間分隔符號為“+”,為方便上位機接收和存儲單片機發送的采集數據。
6) 數據發送模塊。本程序完成的功能是將數據包發送到串口服務器上。
2.3 軟件流程圖
系統的工作原理是系統上電后的, 首先進行初始化,包括設置波特率為9600bps,定時器工作方式,串行口工作方式, 開定時中斷等。然后對八路通道進行循環采集、顯示,最后進行數據處理,將處理后的數據存入緩沖區, 然后由串行口發送數據。流程圖如圖5所示。
3 結束語
本文所設計的方案,采用單片機和串口服務器,既可以完成數據采集, 又可以將數據封裝向Internet 發送,電路結構簡單,實用性強,非常適用于遠距離、偏遠地點的數據終端采集工作, 是數據網絡連接的一種可行性解決方案。