一種基于MC145027的群模擬信號檢測系統ADetectionsystemBasedonMC145027forGroupAnalogueSignal
摘要:介紹一種基于MC145027的群模擬信號檢測系統,該系統可通過(guò)單信號線(xiàn)將各探頭和主機連接起來(lái),其探頭的路數最多可達242路;MC145027特殊的設碼方式可使數據在傳輸過(guò)程中具有極高的可靠性,這在強電磁干擾的工業(yè)現場(chǎng)具有較高的應用價(jià)值。
本文引用地址:http://dyxdggzs.com/article/255644.htm關(guān)鍵詞:多點(diǎn)檢測;單信號線(xiàn);可靠性;MC145026;MC145027
在工業(yè)自動(dòng)化控制系統中,往往需要對多點(diǎn)模擬量進(jìn)行檢測,傳統的方法是在各檢測點(diǎn)設置傳感器 ,并以三線(xiàn)或二線(xiàn)連接到主機,通過(guò)多路模擬開(kāi)關(guān)和模數轉換器件對各個(gè)模擬量進(jìn)行模數轉換,取得相應的數據以供主機處理。這種方法存在如下缺陷:
·模擬電壓在通過(guò)電纜傳到主機的過(guò)程中容易受到干擾;
·主機要通過(guò)模擬開(kāi)關(guān)選擇傳感器,這使探頭的路數受到限制,主機的接口電路比較復雜;
·主機無(wú)法向各檢測點(diǎn)傳送控制指令;
·如果在檢測點(diǎn)增加一個(gè)傳感器,就必須增加一根電纜連至主機,因而增加了布線(xiàn)的復雜程度;
針對上述問(wèn)題,筆者設計了一套基于MC145027的群模擬信號檢測系統,使主機和各個(gè)探頭之間只通過(guò)三根線(xiàn)即可進(jìn)行雙向的數據傳輸(如圖1所示)。由于MC145027特殊的譯碼方式能夠消除瞬間的強電磁干擾,因而數據在傳輸過(guò)程中具有很高的可靠性。
1. MC145027的解碼方式
MC145027通常用作解碼器,與之搭配使用的編碼器為MC145026。為了說(shuō)明MC145027的解碼方式,這里首先介紹一下MC145026的編碼方式。
1.1MC145026的編碼
集成編碼器CM145026的引腳功能和外部電路如圖2所示。A1~A9是地址或數據輸入端,當作地址使用時(shí)有三個(gè)狀態(tài) (高電平、開(kāi)路、低電平),當作數據使用時(shí)有兩種狀態(tài)(高電平、低電平);、
的數值決定MC145026內部時(shí)鐘振蕩器的工作頻率
;TE是內部時(shí)鐘振蕩器的工作控制端,當TE為低電平時(shí),振蕩器工作;
的輸出編碼信號如圖3所示,兩個(gè)連續的寬脈沖(占空比7:1)表示“1”,兩個(gè)連續的窄脈沖(占空比1:7)表示“0”,一寬一窄兩個(gè)脈沖表示“開(kāi)路”。發(fā)送時(shí),先發(fā)送17.5個(gè)時(shí)鐘周期的低電平, 接著(zhù)依次發(fā)送A1~A2的狀態(tài)編碼,如果A1~A9的狀態(tài)編碼發(fā)送完畢后TE依然是低電平,經(jīng)過(guò)24個(gè)時(shí)鐘周期后再依次發(fā)送 A1~A9的狀態(tài)編碼。其編碼的發(fā)送工作不管TE在何時(shí)由低電平變?yōu)楦?img onload="if(this.width>620)this.width=620;" onclick="window.open(this.src)" style="cursor:pointer" src="iie/200007/28/t3.gif" width="430" height="107" align="right"hspace="8" vspace="8">電平,均必須等到當前發(fā)送周期結束以后才能停止[1]。
1.2MC145027的解碼方式
MC145027是與MC145026配套使用的解碼器(MC145027/145028)的一種,具有4位數據輸出和5位地址編碼,根據其地址的不同組合可以產(chǎn)生
種不同的地址編碼。根據其地址的不同組合可以產(chǎn)生
種不同的地址編碼。MC145027的引腳功能和外部電路如圖4所示,其功能框圖如圖5所示。
MC145027通過(guò)RC積分電路來(lái)完成寬窄脈沖的識別,圖5中,定時(shí)元件R1、C1決定對寬窄脈沖的識別。。 R2、C2是整個(gè)發(fā)送周期的辨別定時(shí)元件,用以確定各個(gè)有效單字,
。當編碼信號從數據輸入端(9腳)輸入時(shí),6 腳將出現與9腳相同的信號,該信號經(jīng)R1、C1積分電路積分后由7腳送至數據提取電路,數據提取電路在輸入信號的每一個(gè)上升沿通過(guò)檢測 7腳的狀態(tài)來(lái)判斷輸入的是寬脈沖還是窄脈沖。圖6給出了6腳和7腳信號的波形,假定數據輸入端輸入的是“開(kāi)路”編碼(即一個(gè)寬脈沖和一個(gè)窄脈沖),寬脈沖開(kāi)始于t0時(shí)刻,結束于t1時(shí)刻,窄脈沖開(kāi)始于t2時(shí)刻,結束于t3時(shí)刻,整個(gè)編碼于t4時(shí)刻結束。那么,在t1時(shí)刻,7腳的電壓為:
在此時(shí)刻,數據提取電路檢測到的7腳電平為高電平,說(shuō)明上一個(gè)脈沖為寬脈沖;此后窄脈沖通過(guò) R1給C1充電,在窄脈沖結束時(shí)的t3時(shí)刻,7腳的電壓為0.74Vcc,在此后的一段時(shí)間里C1通過(guò)R1放電,在編碼結束的t4時(shí)刻,7腳的電壓為0.1Vcc。此時(shí)數據提取電路檢測到7腳的電平為低電平,說(shuō)明上一個(gè)脈沖為窄脈沖。由此可見(jiàn)MC145027并不是對接收到的脈沖信號直接進(jìn)行解碼,而是將輸入信號積分后進(jìn)行解碼,由于積分電路能濾除瞬間的尖脈沖干擾,因此MC145027接收的編碼信號即使受到某種程序的干擾,MC145027依然能夠進(jìn)行正確的解碼,這一點(diǎn)對于環(huán)境復雜的工業(yè)現場(chǎng)特別重要。
2. 系統硬件電路的設計
該檢測系統的硬件電路包括探頭電路和主機接口電路兩部分,主機和探頭之間傳輸的格式遵循MC145026的編碼格式。
2.1探頭電路
探頭電路的原理框圖如圖7所示。
主機發(fā)送至探頭的編碼信號線(xiàn)經(jīng)過(guò)信號傳至各個(gè)探頭,經(jīng)放大整形電路處理后送到 MC145027進(jìn)行解碼,當地址判斷一致后,VT由低變高向單片機申請中斷,由單片機讀取解碼后的數據, MC145027能夠解出4位數據碼,4位二進(jìn)制的數據碼可以表示
種命令,單片機根據命令的要求將采集到的數據(溫度、壓力、濕度等)按照 MC145026的編碼格式由P1.7輸出,再經(jīng)過(guò)驅動(dòng)電路回送至主機。
2.2主機接口電路
以486或586微機作為主機,通過(guò)并行打印口與探頭交換數據的主機接口電路如圖8所示。MC145027 的A1~A5引腳的狀態(tài)決定主機的地址碼(00000),D6~D9分別和主機打印口的引腳13、12、10、11相連,上述4個(gè)引腳為打印機的狀態(tài)輸入口,口地址為 379H(279H),分別對應于主機數據總線(xiàn)的D4~D7。主機通過(guò)打印口的14腳(口地址37AH/27AH,對應于數據位D1)向各個(gè)探頭發(fā)送命令,探頭接到命令后向主機回傳所要求的數據,并通過(guò) MC145027解碼后由主機讀取。MC145027的VT引腳接至打印口的1腳(口地址37AH/27AH,對應于數據位D0),主機通過(guò)定時(shí)檢測VT腳的狀態(tài)來(lái)判斷是否有應答數據到來(lái)。
3. 軟件的設計
3.1數據格式的定義
根據MC145026的編碼格式,在一個(gè)發(fā)送周期里可以發(fā)送9位數據信息,我們定義A1~A5為探頭和主機的地址信息,由于總共可表示243個(gè)地址碼,而主機的地址碼定義為00000,因而其余242個(gè)地址碼可供探頭使用; 在主機發(fā)至探頭的編碼里,除了A1~A5表示探頭的地址之外,尚有A6~A9共4位可以表示控制命令,共可組成個(gè)命令碼,設計時(shí)可以根據系統的要求將這16個(gè)命令碼一一定義,以供系統使用。在探頭發(fā)往主機的編碼里,前五位A1~A5是固定格式00000 ,表示主機的地址號,后四位A6~A9表示發(fā)往主機的數據,一個(gè)字節分兩次發(fā)送,先發(fā)高半字節(高四位),再發(fā)低半字節(低四位)。
3.2探頭地址碼的設置
MC145027的地址輸入腳(A1~A5)有三個(gè)狀態(tài)(高電平、平路、低電平)也就是說(shuō)地址線(xiàn)是三進(jìn)制數據,而單片機的 I/O口是二進(jìn)制狀態(tài)(二進(jìn)制數據格式),在探頭電路中,為了使單片機發(fā)送的地址碼與 MC145027的地址碼相對應,單片機必須能自動(dòng)檢測自身的地址。在圖7所示的電路中,P1.0~P1.6作為地址設定腳,它們所表示的地址信息應與 MC145027的地址(A1~A5)相同,這涉及到二進(jìn)制到三進(jìn)制轉換的問(wèn)題。由于表示243個(gè)地址需要8 位二進(jìn)制數據,而單片機只有7位地址設定腳,另外的一位(最高位)只能由程序設定。這樣探頭的地址就可以比較靈活地設置,因而具有一定的通用性。
3.3單片機的軟件設計
探頭電路中的單片機主要用來(lái)完成以下幾個(gè)功能:(1)完成探頭電路的自檢;(2)接收并執行主機發(fā)來(lái)的控制命令;(3)根據主機的命令完成相應的動(dòng)作;(4)按照MC145026 的編碼格式向主機發(fā)送數據。
3.4主機軟件的設計
主機軟件是整個(gè)控制系統的核心,在這里我們只討論和探頭通信有關(guān)的內容。在主控軟件中設置一個(gè)定時(shí)中斷程序,以定時(shí)檢測 MC145027的VT腳的狀態(tài),當VT腳由低電平變?yōu)楦唠娖綍r(shí),通過(guò)讀取379H/279H口的內容來(lái)接收探頭發(fā)來(lái)的數據。當主機向各探頭發(fā)送命令時(shí),就可通過(guò)并行打印口的 14腳發(fā)送控制命令編碼。主機命令碼的發(fā)送格式也應遵循MC145026的編碼格式。
4. 結束語(yǔ)
利用MC145027獨特的解碼方式能有效地克服工業(yè)現場(chǎng)的強電磁干擾,保證數據的可靠傳輸,利用單片機(或 486/586主機)模仿MC145026發(fā)送編碼數據可有效地利用系統資源,節藥成本,提高整個(gè)系統的可靠性。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論