多參數(shù)室內(nèi)環(huán)境智能監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
3.2 FPGA邏輯控制部分
本文引用地址:http://www.ex-cimer.com/article/262218.htm 在FPGA中設(shè)計(jì)了計(jì)數(shù)器和數(shù)據(jù)存儲(chǔ)器RAM以及邏輯控制模塊,以保證能夠?qū)崟r(shí)地將ADC轉(zhuǎn)換過(guò)來(lái)的數(shù)據(jù)進(jìn)行處理,FPGA邏輯控制模塊如圖8所示。
AD邏輯控制模塊用來(lái)對(duì)AD轉(zhuǎn)換器進(jìn)行采樣控制。EP1C12Q240C8在對(duì)ADC0809控制時(shí)產(chǎn)生START轉(zhuǎn)換啟動(dòng)信號(hào),ALE地址鎖存允許信號(hào)(高電平有效),在工作過(guò)程中FPGA不斷讀入轉(zhuǎn)換結(jié)束信號(hào)EOC判斷ADC0809轉(zhuǎn)換是否結(jié)束。當(dāng)EOC發(fā)出一個(gè)正脈沖時(shí),表示A/D轉(zhuǎn)換結(jié)束,此時(shí)開(kāi)啟輸出允許OE,打開(kāi)ADC0809的三態(tài)緩沖鎖存器將轉(zhuǎn)換好的數(shù)據(jù)輸入FPGA中。存儲(chǔ)器RAM主要用來(lái)存儲(chǔ)采集的數(shù)據(jù),方便單片機(jī)直接調(diào)用。
3.3 串口通信
單片機(jī)將采集的數(shù)據(jù)進(jìn)行處理后,通過(guò)RS485總線接口電路傳輸至監(jiān)控平臺(tái)。RS485通信距離為幾十米到上千米,并且采用平衡發(fā)送和差分接收,具有抑制共??垢蓴_的能力,在互連時(shí)可以省掉許多信號(hào)線。被廣泛應(yīng)用于單片機(jī)與PC之間的數(shù)據(jù)傳輸。
通信協(xié)議具體的要求如下:
(1) 上位機(jī)為主機(jī),各節(jié)點(diǎn)采集模塊為從機(jī),上位機(jī)需要讀出采集點(diǎn)的數(shù)據(jù)時(shí),先發(fā)送設(shè)置指令,滿足一定的條件后發(fā)送數(shù)據(jù)查詢指令。
(2) 主從機(jī)之間采用多點(diǎn)總線型主從式結(jié)構(gòu)、異步半雙工通訊方式,波特率設(shè)為9600bps。
(3) 由主機(jī)以一定的周期按照地址順序輪流向各從機(jī)發(fā)送查詢或控制指令,從機(jī)根據(jù)指令中的地址碼判斷是否輪到自己發(fā)送數(shù)據(jù),是則立即根據(jù)指令向主機(jī)返回相應(yīng)的信息,不是則不得向總線發(fā)任何數(shù)據(jù)。
(4) 正常情況下主機(jī)所有的指令只發(fā)一次,從機(jī)在接收無(wú)誤的情況下立即響應(yīng)。如果主機(jī)在限定時(shí)間內(nèi)(200ms)未收到應(yīng)答,則繼續(xù)向該從機(jī)發(fā)送,如果連續(xù)3次不正常,則判斷該從機(jī)通訊故障,終止查詢,如果連續(xù)4次未能接收到從機(jī)的回應(yīng)則判斷485出現(xiàn)故障并報(bào)警。
3.4 上位機(jī)顯示程序設(shè)計(jì)
上位機(jī)要實(shí)現(xiàn)與下位機(jī)的通信,實(shí)現(xiàn)不同節(jié)點(diǎn)的選擇,參數(shù)數(shù)據(jù)的上傳,數(shù)據(jù)的實(shí)時(shí)顯示,以及不同參數(shù)的趨勢(shì)圖繪制。上位機(jī)的工作流程如圖9。
3.4.1 Visual Basic6.0中的串行通信控件MSComm
MSComm控件通過(guò)串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能。它提供事件驅(qū)動(dòng)方式和查詢方式兩種處理通信的方式。
MSComm控件通信的流程圖如圖10所示。編寫(xiě)程序時(shí),只需要按照?qǐng)D10的流程圖,即可實(shí)現(xiàn)通信功能。
評(píng)論