摘要:應(yīng)用以ARM9為核心的處理器S3C2410設(shè)計(jì)了一種用于三相工頻電參數(shù)遠(yuǎn)程抄送和采集系統(tǒng)。實(shí)現(xiàn)三相電量和三相交流參數(shù)(電壓、電流、功率因數(shù))進(jìn)行采集和遠(yuǎn)程抄收功能。系統(tǒng)硬件電路設(shè)計(jì)采用S3C2410的接口電路,實(shí)現(xiàn)了工頻通信的基本功能,并將子站設(shè)計(jì)為接收單元與調(diào)制單元分離的結(jié)構(gòu),二者通過CAN總線作為數(shù)據(jù)傳輸通道,提高了子站的安裝適應(yīng)性。用以太網(wǎng)控制器RTL8019AS設(shè)計(jì)了網(wǎng)絡(luò)接口電路,實(shí)現(xiàn)了子站與后臺(tái)間的網(wǎng)絡(luò)通信。通過移植實(shí)時(shí)嵌入式操作系統(tǒng)μC/OS-II對(duì)所有任務(wù)進(jìn)行調(diào)度管理,同時(shí)在系統(tǒng)中使用了TCP/IP協(xié)議建立網(wǎng)絡(luò)連接,并采用UDP協(xié)議實(shí)現(xiàn)了網(wǎng)絡(luò)數(shù)據(jù)的傳輸。
關(guān)鍵詞:工頻通信;CAN總線;S3C2410
0引言
在電力部門的日常生產(chǎn)中,電能計(jì)量、供電量考核、電費(fèi)核算的及時(shí)性和準(zhǔn)確性已成為供電企業(yè)的重要課題,而目前我國(guó)電能數(shù)據(jù)的采集基本上為手工抄表,需要抄表人員每月或每?jī)蓚€(gè)月對(duì)每個(gè)臺(tái)區(qū)變壓器抄表一次,再通過微機(jī)或手工制作的報(bào)表輸出,存在錯(cuò)抄、漏抄、估抄等問題。此外配電臺(tái)區(qū)的負(fù)荷、有功功率、無功功率、功率因數(shù)、電壓、電流等交流參數(shù)信息也無法通過有效途徑得以實(shí)時(shí)監(jiān)控。工頻通信技術(shù)的出現(xiàn),使電力部門實(shí)現(xiàn)真正意義上的配電臺(tái)區(qū)的自動(dòng)化管理成為可能,但工頻通信系統(tǒng)還存在諸如調(diào)制變壓器選擇受到調(diào)制電纜長(zhǎng)度限制致使系統(tǒng)的安裝性不好、系統(tǒng)工作效率有待提高、采集處理的用電信息內(nèi)容有待擴(kuò)充、用電信息傳輸精度需要進(jìn)一步提高等問題。采用基于ARM9內(nèi)核的處理器所具有的優(yōu)良性能實(shí)現(xiàn)工頻通信技術(shù)[12],能提高系統(tǒng)的工作效率,并研制結(jié)構(gòu)更合理、功能更完善的子站設(shè)備,可以滿足現(xiàn)場(chǎng)實(shí)際應(yīng)用的要求。
1系統(tǒng)硬件電路組成及實(shí)現(xiàn)
1.1系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)
本設(shè)計(jì)使用如圖1所示的電力線工頻通信系統(tǒng)結(jié)構(gòu),圖中子站部分為本文的主要研究?jī)?nèi)容,具體包括:(1)CAN總線 ;(2)以太網(wǎng)絡(luò)接口。
子站接收單元需要完成對(duì)以太網(wǎng)數(shù)據(jù)的及時(shí)收發(fā)、CAN總線的通信控制、A/D采集、數(shù)據(jù)解碼等工作,對(duì)處理器的性能要求較高,在本設(shè)計(jì)中選擇由Samsung公司生產(chǎn)的基于ARM920T內(nèi)核的微處理器S3C2410[34],以該處理器為核心的接收單元硬件結(jié)構(gòu)見圖2。本設(shè)計(jì)中重點(diǎn)設(shè)計(jì)CAN總線接口、多支路輸入切換控制、RAM、A/D采集電路接口、B相電流信號(hào)合成電路、以太網(wǎng)接口電路。
子站調(diào)制單元通過CAN總線接收采集單元發(fā)送的控圖1電力線工頻通信系統(tǒng)示意圖
制命令并調(diào)制下行信號(hào),調(diào)制完成后,通過CAN總線將工作狀態(tài)傳遞回采集單元,使用普通的8051單片機(jī)就能滿足實(shí)際需要,因此選擇ATMEL公司生產(chǎn)的AT89C52單片機(jī)作為調(diào)制單元的控制器,子站調(diào)制單元的硬件結(jié)構(gòu)見圖3。
1.2S3C2410的CAN總線接口設(shè)計(jì)
圖4為S3C2410 CAN總線接口電路,從圖中可以看出電路主要由四部分構(gòu)成:微處理器S3C2410、CAN總線收發(fā)器82C250[56]、高速光電耦合器6N137和電源隔離模塊。微處理器S3C2410負(fù)責(zé)內(nèi)部CAN控制器的初始化并實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。
2軟件設(shè)計(jì)與實(shí)現(xiàn)
2.1嵌入式TCP/IP協(xié)議棧的實(shí)現(xiàn)
要完成網(wǎng)絡(luò)通信數(shù)據(jù)的正常處理,需要使用網(wǎng)絡(luò)通信協(xié)議,在本系統(tǒng)中使用了嵌入式TCP/IP協(xié)議。TCP/IP協(xié)議相當(dāng)復(fù)雜,而且系統(tǒng)資源有限,沒有必要全部實(shí)現(xiàn),根據(jù)系統(tǒng)的使用要求,主要實(shí)現(xiàn)網(wǎng)絡(luò)接口驅(qū)動(dòng)、數(shù)據(jù)鏈路層ARP協(xié)議、網(wǎng)絡(luò)層ICMP和IP協(xié)議、傳輸層UDP協(xié)議[7],嵌入式TCP/IP的數(shù)據(jù)流見圖5。
(1) ARP代碼的第一部分把IP地址映射到物理地址上,即給定一個(gè)目的節(jié)點(diǎn)的IP地址,用軟件查詢ARP緩存是否有該IP的物理地址映射。該功能通過子程序void Arp_Request(uint8 *ip_address,uint8 num)來實(shí)現(xiàn),其中ip_address即為要解析的IP地址,使用該子程序處理后,即可以獲得該IP的物理地址[8]。
(2) 網(wǎng)際協(xié)議(IP)是一個(gè)網(wǎng)絡(luò)層協(xié)議,它是TCP/IP協(xié)議棧中最為核心的協(xié)議。IP協(xié)議中定義了數(shù)據(jù)包,稱為IP數(shù)據(jù)報(bào)文,它是Internet上數(shù)據(jù)通信的基本單位。
(3) ICMP協(xié)議同樣位于網(wǎng)絡(luò)層,主要負(fù)責(zé)接收、解釋、發(fā)送ICMP報(bào)文。ICMP報(bào)文主要有兩種功能:報(bào)告出錯(cuò)信息、傳送控制信息。在本系統(tǒng)中選擇實(shí)現(xiàn)ICMP協(xié)議,主要是為了響應(yīng)對(duì)方主機(jī)使用Ping命令發(fā)出的回應(yīng)請(qǐng)求。通過Ping命令和響應(yīng)可以判斷網(wǎng)絡(luò)的連接是否可靠[9]。
2.2以太網(wǎng)硬件接口驅(qū)動(dòng)的實(shí)現(xiàn)
RTL8019AS的驅(qū)動(dòng)程序主要包括芯片初始化、發(fā)送數(shù)據(jù)包、接收數(shù)據(jù)包三部分,實(shí)現(xiàn)以太網(wǎng)絡(luò)通信的物理層驅(qū)動(dòng)。
初始化程序主要完成以下功能:芯片復(fù)位、設(shè)置芯片的物理地址、設(shè)置接收緩沖區(qū)的起始地址和大小、設(shè)置發(fā)送緩沖區(qū)的起始地址和大小。
RTL8019AS數(shù)據(jù)發(fā)送流程如圖6。
在接收數(shù)據(jù)時(shí),需要判斷中斷狀態(tài)寄存器ISR的Bit4(OVW),以查詢?cè)赗TL8019接收緩沖區(qū)里是否有新接收的數(shù)據(jù)包。當(dāng)OVW=1時(shí)有新數(shù)據(jù)包,這時(shí)該數(shù)據(jù)包存于以CURR寄存器值為首址的RAM中。此時(shí)啟動(dòng)遠(yuǎn)程DMA讀操作(通過寫CR寄存器值為0x0A實(shí)現(xiàn)),然后讀取接收緩沖區(qū)中的數(shù)據(jù),當(dāng)CURR=BNRY時(shí),接收緩沖區(qū)圖4S3C2410 CAN總線接口電路
中的數(shù)據(jù)讀取完畢[10]。
2.3系統(tǒng)功能的多任務(wù)實(shí)現(xiàn)
在實(shí)現(xiàn)系統(tǒng)功能時(shí),共建立了三個(gè)任務(wù):操作系統(tǒng)啟動(dòng)運(yùn)行的第一個(gè)任務(wù)(Task0)、Ping命令響應(yīng)處理任務(wù)(TaskB)、工頻通信處理任務(wù)(TaskD)。操作系統(tǒng)的主函數(shù)流程如圖7所示?!?/p>
工頻通信系統(tǒng)子站的改進(jìn)采用基于ARM9內(nèi)核的S3C2410處理器和μC/OSII操作系統(tǒng),設(shè)計(jì)了系統(tǒng)功能應(yīng)用程序,實(shí)現(xiàn)子站功能。根據(jù)實(shí)際使用要求,設(shè)計(jì)子站為接收單元與調(diào)制單元分離的結(jié)構(gòu),兩單元間使用CAN總線作為控制/數(shù)據(jù)線,設(shè)計(jì)了RTL8019AS網(wǎng)絡(luò)控制芯片與S3C2410的接口電路,并根據(jù)使用需要嵌入相關(guān)的TCP/IP協(xié)議,使子站具備網(wǎng)絡(luò)通信的能力。
參考文獻(xiàn)
?。?] 高紅玉, 徐建城, 曾成奇. 基于ARM的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2005,31(4):2426.
?。?] 胡友水, 李漢強(qiáng). 基于ARM的嵌入式TCP/IP協(xié)議的實(shí)現(xiàn)[J]. 電子技術(shù)應(yīng)用, 2003,29(12):2527.
?。?] 段海龍, 彭輝俊, 程健. 基于ARM的嵌入式以太網(wǎng)通信的實(shí)現(xiàn)[J]. 機(jī)械與電子, 2006(2):911.
?。?] 朱偉華,索大翔,譚微. 4G技術(shù)應(yīng)用于電能質(zhì)量監(jiān)測(cè)的分析研究[J].電測(cè)與儀表,2015(52)6:4447.
?。?] 吳廣霖, 白瑞林. 基于μC/OSII的μC/IP協(xié)議棧在ARM系統(tǒng)中的實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與應(yīng)用, 2005(18):99102.
?。?] 楊華, 陳明義, 胡暉, 等. 基于嵌入式的CAN總線智能數(shù)據(jù)采集器開發(fā)[J]. 湖南大學(xué)學(xué)報(bào)(自然科學(xué)版), 2005, 32(6):110112.
?。?] 張靜, 張凱. 實(shí)時(shí)操作系統(tǒng)μC/OSII在ARM7上移植的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與應(yīng)用, 2004(4):100102.
?。?] 賈衡天,管康,范錦輝,等.隨鉆井下32位信號(hào)采集系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2014,33(13):1619,24.
?。?] 李文進(jìn), 韓曉萍. ARM平臺(tái)在嵌入式遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)[J]. 繼電器, 2006, 34(5):6467.
?。?0] 王浩宇,王玨.一種節(jié)能型電子站牌硬件系統(tǒng)的設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2014,33(9):2829,32.