于浩洋
(黑龍江工程學院電子工程系,黑龍江 哈爾濱 150050)
隨著電子技術的迅猛發(fā)展,各種工業(yè)過程數(shù)字儀表應運而生。目前,在工業(yè)生產(chǎn)過程中,數(shù)據(jù)通信普遍采用傳統(tǒng)的一對一數(shù)據(jù)通信模式或自封閉的集散系統(tǒng)。這使得設備之間以及系統(tǒng)與外界之間的信息交換難以實現(xiàn)[1]。
因此,現(xiàn)今的大多數(shù)智能儀表接口都只單純地適應以太網(wǎng)而不能同時兼容Internet[2]。開發(fā)具有以太網(wǎng)和Internet功能的智能儀表接口電路,不僅能夠很好地解決傳統(tǒng)的一對一的數(shù)據(jù)傳輸模式和數(shù)據(jù)“孤島”問題,更為日益加快的信息化進程提供了一條可靠的過渡渠道[3]。
整個系統(tǒng)由以太網(wǎng)控制器、微控制器(MCU)、網(wǎng)絡接口、RS-485接口和網(wǎng)關等模塊構(gòu)成,總體結(jié)構(gòu)如圖1所示。圖1中,主控器單片機以查詢的方式詢問以太網(wǎng)控制器是否有數(shù)據(jù)接收。如有數(shù)據(jù)接收,則根據(jù)數(shù)據(jù)包類型交由相關的程序處理;如有數(shù)據(jù)需要發(fā)送,則根據(jù)數(shù)據(jù)包類型進行封裝,并投遞至以太網(wǎng)中。若目標地址(IP)隸屬于Internet,則查詢地址解析協(xié)議緩存表;若沒有相應的IP、物理地址(MAC)映射,則以廣播方式查詢該映射,然后通過網(wǎng)關投遞數(shù)據(jù)包[4]。圖1中的虛線部分由硬件電路實現(xiàn),其余部分通過軟件編程來實現(xiàn)。
圖1 系統(tǒng)結(jié)構(gòu)框圖Fig.1 Structure of the system
硬件電路的設計大體上可分為單片機控制電路、以太網(wǎng)控制器電路、串口擴展電路和RS-485端口通信電路4部分。
PIC24F16KA101系列是通用的16位微控制器,采用nanoWatt XLPTM超低功耗技術,可使休眠電流低至20 nA,非常適用于各種電池供電或電力有限的應用;具備集成的E2PROM存儲器,體積小巧,采用低引腳數(shù)(20引腳和28引腳)封裝[5],是具有廣泛的外設功能和增強的計算性能的16位微控制器。PIC24F16KA101相關電路主要指與以太網(wǎng)控制器、串口擴展芯片的引腳連接。2個I/O引腳用于兩芯片的片選信號輸出;3個串口(SPI)引腳接入串口總線,通過接口電路數(shù)據(jù)的串行方式來進行數(shù)據(jù)傳輸;2個中斷接口被用作外部中斷輸入,當網(wǎng)絡中有數(shù)據(jù)包接收時,給予主控器中斷信號,然后予以處理[6]。
ENC28J60以太網(wǎng)控制器為Microchip Technology公司推出的28引腳獨立以太網(wǎng)控制器,是目前全世界最小封裝的以太網(wǎng)控制器,它可為嵌入式應用提供低引腳數(shù)、低成本且高效易用的遠程通信解決方案[7]。相關電路如圖2所示。
圖2 以太網(wǎng)控制電路Fig.2 Control circuit of Ethernet
圖2中,根據(jù)ENC28J60的工作頻率要求,需在OSC1和OSC2引腳間接25 MHz晶振及接地電容。ENC28J60的內(nèi)部模擬電路需要在RBIAS引腳與地之間外接一個2 kΩ(精度為1%)的電阻。以太網(wǎng)接口采用含有以太網(wǎng)隔離變壓器的RJ45插座HR901170A[8]。
串口擴展電路的設計是為了提高接口電路的網(wǎng)絡范圍,增加網(wǎng)絡最大允許節(jié)點數(shù)。本文采用GM8142作為串口擴展芯片,將一個標準SPI接口擴展成4個標準的通用異步收發(fā)器(UART)。工作模式采用廣播模式,即按各子串口設置的波特率、數(shù)據(jù)幀長和校驗方式同時發(fā)送到所有子串口中。工作模式、各子串口的工作波特率、數(shù)據(jù)幀長等各種通信設置均通過軟件進行設置,從而減少了微控制器的輸入輸出接口的需求,有效降低了芯片的功耗。
為了使接口電路擁有與RS-485網(wǎng)絡通信的能力,本文采用ADM2587E作為RS-485收發(fā)器。ADM2587E包含一個集成式隔離直流電源,不再需要外部隔離電源模塊。作為帶隔離的增強型RS-485收發(fā)器,它還具備±15 kV靜電釋放保護功能的完全集成式隔離數(shù)據(jù)收發(fā)器,其適用于多點傳輸線路上的高速通信應用。ADM2587E驅(qū)動器還帶有一個高電平有效使能電路,可以提供一個高電平接收機有效禁用電路,使接收機輸出進入高阻抗狀態(tài)。
本文將美國微芯科技公司協(xié)議棧的TCP/IP用于網(wǎng)絡服務[9]。系統(tǒng)程序流程如圖3所示。
圖3 程序流程圖Fig.3 Flowchart of the program
圖3中,單片機PIC24F16KA101的初始化包括時鐘模式的確定和復用引腳的相關寄存器的設置。串口初始化是對單片機中的串行口1狀態(tài)和控制寄存器、串行口控制寄存器1和串行口控制寄存器2進行相應的設置。ENC28J60初始化工作包括接收和發(fā)送緩沖器、接收過濾器、晶振的啟動時間、介質(zhì)訪問控制寄存器和物理層寄存器的設置。初始化芯片之前先關閉單片機的中斷輸入,對復位引腳給定一個持續(xù)的低電平復位信號,然后對相應的寄存器進行設置。設置完成所有需要的寄存器后,判斷以太網(wǎng)狀態(tài)中的時鐘啟動標志位是否置位,然后開中斷。
將上述設計應用于智能抄表系統(tǒng),系統(tǒng)結(jié)構(gòu)圖如圖4所示。圖4中,PIC24F16KA101作為控制器,通過串口SPI和中斷引腳INT1連接串口擴展模塊GM8142,并通過ADM2587E形成4個獨立的RS-485網(wǎng)段(每個網(wǎng)段可連接32個RS-485節(jié)點)。通過擴展SIM(用戶身份鑒別模塊)卡接口,管理網(wǎng)關配置和通信加密。實現(xiàn)Web服務應用時,擴展的外部并行RAM和SPI接口的E2ROM,分別用于超文本傳輸協(xié)議HTTP緩沖和Web頁存儲。由于GM8142擴展的4個串口具有獨立的通信設置和8字節(jié)的先進先出口,因此,可靈活地適應不同的測控節(jié)點通信。網(wǎng)關復位后,單片機對通用同步/異步傳送器口進行設置。本文選擇串口的通信方式為半雙工模式[10],設置波特率寄存器 UBRRH和 UBRRL,使波特率為9600 bit/s,設置狀態(tài)寄存器UCSRB,以使能接收器與發(fā)送器,并通過狀態(tài)寄存器UCSRC設置幀格式。
圖4 系統(tǒng)結(jié)構(gòu)框圖Fig.4 Structure of the system
由PIC24F16KA101為控制器的微處理器,配以ENC28J60構(gòu)成的嵌入式以太網(wǎng)模塊電路連接簡單、功能強大;與目前大多數(shù)需要并行數(shù)據(jù)和地址總線的控制器相比,不需要小封裝的微控制器外擴地址和數(shù)據(jù)總線,并可以將電路做到最小尺寸,符合未來工業(yè)以太網(wǎng)控制器的發(fā)展趨勢。同時,該電路擁有跨越網(wǎng)關的能力。
本設計的創(chuàng)新之處就在于不僅使接口電路實現(xiàn)了兼有在以太網(wǎng)和Internet下進行數(shù)據(jù)傳輸?shù)墓δ埽铱朔私涌陔娐菲毡榇嬖诘碾娐方Y(jié)構(gòu)復雜、連線較多和容易出錯的缺陷。實際應用顯示,數(shù)據(jù)傳輸準確,電路兼容性較好。
[1]Axeison J.嵌入式Ethernet和Internet通信設計技術[M].駱麗,張岳強,歐小龍,譯.北京:北京航空航天大學出版社,2006:4-12.
[2]艾樹峰.基于89C51單片機以太網(wǎng)-CAN網(wǎng)關的接口設計與實現(xiàn)[J].電訊技術,2007,47(6):167 -171.
[3]吳強.基于單片機的以太網(wǎng)嵌入式控制器設計[J].微計算機信息,2008,24(3 -2):104 -106.
[4]Doyle J,Carrou J.TCP/IP 路由技術(第1 卷)[M].葛建立,吳劍章,譯.北京:人民郵電出版社,2007:243-258.
[5]祈國梁,付明陽,王健曉.基于單片機的以太網(wǎng)串口服務器原理[J].自動化與儀表,2007(4):45-48.
[6]李綱.智能網(wǎng)絡設備開發(fā)中的硬件設計[J].單片機與嵌入式系統(tǒng)應用,2002(10):12 -16.
[7]張偉業(yè),黃云龍,陳國定.基于ENC28J60以太網(wǎng)通信接口的設計與實現(xiàn)[J].機電工程,2008,25(1):28 -30.
[8]于浩洋,邵國平,秦杰.基于ENC28J60以太網(wǎng)控制器的SPI接口設計[J].黑龍江工程學院學報:自然科學版,2009,23(2):64 -66.
[9]Scaglia S.嵌入式 Internet TCP/IP基礎、實現(xiàn)及應用[M].潘琢金,徐蕾,拱長青,等,譯.北京:北京航空航天大學出版社,2008:133-142.
[10]何瑾,劉杰,田明.C8051在水表計費系統(tǒng)中的應用[J].自動化儀表,2006,27(6):60-62.