于浩洋
(黑龍江工程學院電子工程系,黑龍江 哈爾濱 150050)
隨著電子技術的迅猛發展,各種工業過程數字儀表應運而生。目前,在工業生產過程中,數據通信普遍采用傳統的一對一數據通信模式或自封閉的集散系統。這使得設備之間以及系統與外界之間的信息交換難以實現[1]。
因此,現今的大多數智能儀表接口都只單純地適應以太網而不能同時兼容Internet[2]。開發具有以太網和Internet功能的智能儀表接口電路,不僅能夠很好地解決傳統的一對一的數據傳輸模式和數據“孤島”問題,更為日益加快的信息化進程提供了一條可靠的過渡渠道[3]。
整個系統由以太網控制器、微控制器(MCU)、網絡接口、RS-485接口和網關等模塊構成,總體結構如圖1所示。圖1中,主控器單片機以查詢的方式詢問以太網控制器是否有數據接收。如有數據接收,則根據數據包類型交由相關的程序處理;如有數據需要發送,則根據數據包類型進行封裝,并投遞至以太網中。若目標地址(IP)隸屬于Internet,則查詢地址解析協議緩存表;若沒有相應的IP、物理地址(MAC)映射,則以廣播方式查詢該映射,然后通過網關投遞數據包[4]。圖1中的虛線部分由硬件電路實現,其余部分通過軟件編程來實現。

圖1 系統結構框圖Fig.1 Structure of the system
硬件電路的設計大體上可分為單片機控制電路、以太網控制器電路、串口擴展電路和RS-485端口通信電路4部分。
PIC24F16KA101系列是通用的16位微控制器,采用nanoWatt XLPTM超低功耗技術,可使休眠電流低至20 nA,非常適用于各種電池供電或電力有限的應用;具備集成的E2PROM存儲器,體積小巧,采用低引腳數(20引腳和28引腳)封裝[5],是具有廣泛的外設功能和增強的計算性能的16位微控制器。PIC24F16KA101相關電路主要指與以太網控制器、串口擴展芯片的引腳連接。2個I/O引腳用于兩芯片的片選信號輸出;3個串口(SPI)引腳接入串口總線,通過接口電路數據的串行方式來進行數據傳輸;2個中斷接口被用作外部中斷輸入,當網絡中有數據包接收時,給予主控器中斷信號,然后予以處理[6]。
ENC28J60以太網控制器為Microchip Technology公司推出的28引腳獨立以太網控制器,是目前全世界最小封裝的以太網控制器,它可為嵌入式應用提供低引腳數、低成本且高效易用的遠程通信解決方案[7]。相關電路如圖2所示。

圖2 以太網控制電路Fig.2 Control circuit of Ethernet
圖2中,根據ENC28J60的工作頻率要求,需在OSC1和OSC2引腳間接25 MHz晶振及接地電容。ENC28J60的內部模擬電路需要在RBIAS引腳與地之間外接一個2 kΩ(精度為1%)的電阻。以太網接口采用含有以太網隔離變壓器的RJ45插座HR901170A[8]。
串口擴展電路的設計是為了提高接口電路的網絡范圍,增加網絡最大允許節點數。本文采用GM8142作為串口擴展芯片,將一個標準SPI接口擴展成4個標準的通用異步收發器(UART)。工作模式采用廣播模式,即按各子串口設置的波特率、數據幀長和校驗方式同時發送到所有子串口中。工作模式、各子串口的工作波特率、數據幀長等各種通信設置均通過軟件進行設置,從而減少了微控制器的輸入輸出接口的需求,有效降低了芯片的功耗。
為了使接口電路擁有與RS-485網絡通信的能力,本文采用ADM2587E作為RS-485收發器。ADM2587E包含一個集成式隔離直流電源,不再需要外部隔離電源模塊。作為帶隔離的增強型RS-485收發器,它還具備±15 kV靜電釋放保護功能的完全集成式隔離數據收發器,其適用于多點傳輸線路上的高速通信應用。ADM2587E驅動器還帶有一個高電平有效使能電路,可以提供一個高電平接收機有效禁用電路,使接收機輸出進入高阻抗狀態。
本文將美國微芯科技公司協議棧的TCP/IP用于網絡服務[9]。系統程序流程如圖3所示。

圖3 程序流程圖Fig.3 Flowchart of the program
圖3中,單片機PIC24F16KA101的初始化包括時鐘模式的確定和復用引腳的相關寄存器的設置。串口初始化是對單片機中的串行口1狀態和控制寄存器、串行口控制寄存器1和串行口控制寄存器2進行相應的設置。ENC28J60初始化工作包括接收和發送緩沖器、接收過濾器、晶振的啟動時間、介質訪問控制寄存器和物理層寄存器的設置。初始化芯片之前先關閉單片機的中斷輸入,對復位引腳給定一個持續的低電平復位信號,然后對相應的寄存器進行設置。設置完成所有需要的寄存器后,判斷以太網狀態中的時鐘啟動標志位是否置位,然后開中斷。
將上述設計應用于智能抄表系統,系統結構圖如圖4所示。圖4中,PIC24F16KA101作為控制器,通過串口SPI和中斷引腳INT1連接串口擴展模塊GM8142,并通過ADM2587E形成4個獨立的RS-485網段(每個網段可連接32個RS-485節點)。通過擴展SIM(用戶身份鑒別模塊)卡接口,管理網關配置和通信加密。實現Web服務應用時,擴展的外部并行RAM和SPI接口的E2ROM,分別用于超文本傳輸協議HTTP緩沖和Web頁存儲。由于GM8142擴展的4個串口具有獨立的通信設置和8字節的先進先出口,因此,可靈活地適應不同的測控節點通信。網關復位后,單片機對通用同步/異步傳送器口進行設置。本文選擇串口的通信方式為半雙工模式[10],設置波特率寄存器 UBRRH和 UBRRL,使波特率為9600 bit/s,設置狀態寄存器UCSRB,以使能接收器與發送器,并通過狀態寄存器UCSRC設置幀格式。

圖4 系統結構框圖Fig.4 Structure of the system
由PIC24F16KA101為控制器的微處理器,配以ENC28J60構成的嵌入式以太網模塊電路連接簡單、功能強大;與目前大多數需要并行數據和地址總線的控制器相比,不需要小封裝的微控制器外擴地址和數據總線,并可以將電路做到最小尺寸,符合未來工業以太網控制器的發展趨勢。同時,該電路擁有跨越網關的能力。
本設計的創新之處就在于不僅使接口電路實現了兼有在以太網和Internet下進行數據傳輸的功能,而且克服了接口電路普遍存在的電路結構復雜、連線較多和容易出錯的缺陷。實際應用顯示,數據傳輸準確,電路兼容性較好。
[1]Axeison J.嵌入式Ethernet和Internet通信設計技術[M].駱麗,張岳強,歐小龍,譯.北京:北京航空航天大學出版社,2006:4-12.
[2]艾樹峰.基于89C51單片機以太網-CAN網關的接口設計與實現[J].電訊技術,2007,47(6):167 -171.
[3]吳強.基于單片機的以太網嵌入式控制器設計[J].微計算機信息,2008,24(3 -2):104 -106.
[4]Doyle J,Carrou J.TCP/IP 路由技術(第1 卷)[M].葛建立,吳劍章,譯.北京:人民郵電出版社,2007:243-258.
[5]祈國梁,付明陽,王健曉.基于單片機的以太網串口服務器原理[J].自動化與儀表,2007(4):45-48.
[6]李綱.智能網絡設備開發中的硬件設計[J].單片機與嵌入式系統應用,2002(10):12 -16.
[7]張偉業,黃云龍,陳國定.基于ENC28J60以太網通信接口的設計與實現[J].機電工程,2008,25(1):28 -30.
[8]于浩洋,邵國平,秦杰.基于ENC28J60以太網控制器的SPI接口設計[J].黑龍江工程學院學報:自然科學版,2009,23(2):64 -66.
[9]Scaglia S.嵌入式 Internet TCP/IP基礎、實現及應用[M].潘琢金,徐蕾,拱長青,等,譯.北京:北京航空航天大學出版社,2008:133-142.
[10]何瑾,劉杰,田明.C8051在水表計費系統中的應用[J].自動化儀表,2006,27(6):60-62.