1引言
遠程抄表系統(tǒng)不僅能夠節(jié)約人力資源,更重要的是可提高抄表的準(zhǔn)確性,減少因估計或謄寫而造成的帳單出錯,所以這種技術(shù)越來越受到用戶歡迎。遠程抄表系統(tǒng)一般包括3個部分:上位機、集中器和采集終端。其中采集終端是介于集中器和電能表之間的中間設(shè)備,主要具有電量數(shù)據(jù)采集、處理、存儲及轉(zhuǎn)發(fā)等功能;根據(jù)電能表的不同,電量采集終端以智能通信方式(規(guī)約)或脈沖采集方式采集數(shù)據(jù),并以一定的算法或程式將采集數(shù)據(jù)加以周期性和選擇性的存儲,同時將實時或歷史電量數(shù)據(jù)以集中器要求的格式和內(nèi)容傳遞給集中器。
由于基于RS485總線的遠程抄表系統(tǒng)不僅成本比較低,而且具有數(shù)據(jù)傳輸穩(wěn)定、可靠性高、傳送距離較遠、速度快、抗干擾能力強等優(yōu)點,所以本文介紹一種基于RS485總線的遠程抄表系統(tǒng)采集終端的設(shè)計,這種采集終端不僅能夠采集脈沖式電能表的電量數(shù)據(jù),而且能夠采集帶RS485接口的電能表的電量數(shù)據(jù)。
2采集終端的硬件設(shè)計與實現(xiàn)
2.1采集終端的總體設(shè)計
采集終端的硬件結(jié)構(gòu)如圖1所示。
圖1采集終端的硬件結(jié)構(gòu)框圖
采集終端的微處理器采用菲利浦的一款基于ARM7內(nèi)核的控制器LPC2131,他有8kB的片內(nèi)靜態(tài)RAM和32kB的片內(nèi)FLASH程序存儲器,有2個32位的定時器,2個16C550工業(yè)標(biāo)準(zhǔn)UART和2個高速I2C總線,此外,他還在片內(nèi)集成了看門狗和實時時鐘。
此采集終端用兩個UART擴展了2個RS485接口,其中RS485接口1和集中器進行通信,RS485接口2和帶RS485接口的電能表進行通信。
存儲器采用串行E2PROMAT24C256,串行E2PROM具有體積小、功耗低、硬件接口簡單等特點,他可以直接掛接在LPC2131的I2C總線上。
本采集終端通過SPI接口來擴展I/O,其中擴展16路I/O輸入用于16路脈沖輸入,另外擴展16路I/O輸出用于數(shù)碼顯示電路。
采集終端的地址用8個地址開關(guān)來進行設(shè)置,另外用一個模式選擇開關(guān)來選擇采集終端是工作在脈沖式電能表模式還是工作在RS485電能表模式。
2.2脈沖采集電路的設(shè)計與實現(xiàn)
本采集終端的脈沖采集電路用SPI接口擴展I/O輸入來實現(xiàn)。其硬件電路圖如圖2所示。
圖2脈沖采集電路
SPI接口通過兩片74HC165來進行I/O擴展。74HC165是一種8位并入串出的移位寄存器,其中CLK和CLKIN為其時鐘輸入端;QH和QH為一對邏輯電平相反的串行數(shù)據(jù)輸出端;SER為級聯(lián)輸入端;SH/LD為預(yù)置控制端,他為低電平時,并行數(shù)據(jù)端的數(shù)據(jù)置入74HC165的內(nèi)部寄存器,為高電平時,則進行串行移位操作。兩片74HC165之間通過級聯(lián)方式進行連接,他們的CLK和SPI接口的SCK相連,由于此SPI接口還要通過兩片74HC595來擴展數(shù)碼顯示電路,為了使SPI時序能夠同時滿足這兩種芯片的時序要求,所以SPI的SCK直接和74HC595的SCK相連,而通過反相器和74HC165的CLK相連,通過一條I/O線nCS來對數(shù)據(jù)輸入和移位操作進行控制。當(dāng)nCS輸出低電平時,則16路脈沖量進入74HC165的內(nèi)部寄存器,而當(dāng)nCS輸出高電平時,則16路脈沖數(shù)據(jù)通過串行輸入端MISO輸入。在脈沖輸入時為了消除抖動,特意在輸入時加上電容和施密特觸發(fā)器進行消抖處理。
2.3RS485接口的設(shè)計與實現(xiàn)
RS485是一種串行總線接口標(biāo)準(zhǔn),他以差分平衡方式傳輸信號,具有很強的抗共模干擾能力,其最大傳輸距離可達4000英尺(約1219m),并且允許在一對雙絞線上一個發(fā)送器驅(qū)動多個負載設(shè)備。
RS485有全雙工和半雙工兩種連接方式。其中采用全雙工連接方式時,與RS422一樣只能實現(xiàn)點對多的通信,即只能有一個主設(shè)備,其余為從設(shè)備;另外,由于每一個傳輸方向都有自己的傳輸通路,不需要對傳輸方向進行控制。采用半雙工連接方式時,可以實現(xiàn)真正的多點雙向通信,但由于發(fā)送和接收共享一個信號通道,在某一個時刻只允許接收或發(fā)送數(shù)據(jù),因此需要對傳輸方向進行控制。
RS485接口1采用全雙工連接方式進行通信,這種通信方式操作簡單,不需要對傳輸方向進行控制。RS485芯片采用MAX1482,他是低功耗的RS485和RS422通信收發(fā)器。他的特征是進行了轉(zhuǎn)換速率限制,可以減少電磁干擾(EMI)和降低通信電纜阻抗不匹配引起的反射,數(shù)據(jù)傳輸速率可以達到250kb/s;具有1/8單位負載的輸入負載阻抗,可以最多帶256個節(jié)點。
RS485接口2采用具有抗雷擊能力的RS485芯片SN75LBC184,其硬件電路如圖3所示。為了保護RS485接口,采用光偶進行隔離保護,考慮到RS485的波特率可能會比較高,所以采用高速光偶6N137進行隔離保護。此接口采用半雙工方式進行連接,用一根I/O線R/DC對傳輸方向進行控制,當(dāng)他輸出高電平時,發(fā)送使能有效,數(shù)據(jù)可以通過TxD線發(fā)送出去;當(dāng)他輸出低電平時,接收使能有效,可以通過RxD線接收數(shù)據(jù)。為了提高RS485通信的可靠性和抗干擾能力,特別加了R1和R3和兩個偏置電阻和匹配電阻R2。
圖3RS485接口2硬件電路圖
3采集終端的各軟件模塊的設(shè)計
采集終端的軟件模塊可以分為3個部分:與集中器通信任務(wù)模塊、定時抄表和存儲模塊以及脈沖采集和錯誤顯示模塊。
與集中器通信任務(wù)模塊采集終端與集中器通信主要是進行抄收電表數(shù)據(jù)、校時、設(shè)置電表地址以及查詢采集終端狀態(tài)等操作。他們之間采用主從式通信方式,集中器為主叫方,采集終端為被叫方;只有當(dāng)集中器向采集終端發(fā)送指令后,采集終端才能進行相應(yīng)的回應(yīng)。其中RS485通信采用數(shù)據(jù)幀方式傳輸,其通信協(xié)議由筆者自己設(shè)定,每個數(shù)據(jù)幀包括以下幾個部分:前導(dǎo)符、地址域、命令碼、數(shù)據(jù)長度、數(shù)據(jù)域、校驗碼和結(jié)束符等。其中前導(dǎo)符用來喚醒對方,校驗采用模256校驗和,即各字節(jié)二進制的算術(shù)和,不計超過256的溢出值。其總體通信流程如圖4所示。當(dāng)采集終端收到的數(shù)據(jù)幀校驗錯誤或者收到錯誤數(shù)據(jù)時,則發(fā)送異常應(yīng)答幀,若收到正確數(shù)據(jù)幀,則發(fā)送正確應(yīng)答幀。
圖4與集中器通信任務(wù)流程圖
定時抄表和存儲模塊采集終端每隔一定的時間要抄收電能表的電量數(shù)據(jù),并把這些電量數(shù)據(jù)存儲在E2PROM中。若是采集終端工作在脈沖式電能表工作模式,則不需要對電量數(shù)據(jù)進行抄收而直接把自己采集的16個電能表的脈沖數(shù)據(jù)存儲在E2PROM中。若是工作在RS485電能表模式,則需要對各個電表進行抄表操作。采集終端和帶RS485接口的電能表用的通信規(guī)約是DL/T645-1997———多功能電表通信規(guī)約。其抄收一個電表的流程如圖5所示,當(dāng)一個電表連續(xù)5次抄不到電量數(shù)據(jù),則認(rèn)為這個電表可能有問題,則在數(shù)碼顯示電路上顯示其錯誤代碼和電表編號。
脈沖采集和錯誤顯示模塊當(dāng)脈沖數(shù)據(jù)經(jīng)SPI接口讀入后,經(jīng)過軟件去抖處理,即連續(xù)幾次讀SPI接口,若幾次都讀到高電平則認(rèn)為是正確脈沖,則相應(yīng)的電表脈沖數(shù)據(jù)加1,否則視為干擾脈沖。錯誤顯示就是當(dāng)產(chǎn)生E2PROM讀寫錯誤或者電表故障等錯誤時,則在數(shù)碼管上顯示其錯誤代碼。
圖5抄表流程圖
4結(jié)語
本文介紹一種基于RS485總線的采集終端的設(shè)計,這種采集終端不僅能夠集抄脈沖式電表,也能夠集抄帶RS485接口的電能表;采用SPI接口來擴展I/O資源,來實現(xiàn)對輸入脈沖的采集和數(shù)碼顯示電路;采取各種軟硬件措施來提高RS485通信的可靠性,使系統(tǒng)能夠穩(wěn)定可靠地通信。
評論