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