基于CAN總線的電力集中抄表系統(tǒng)
0 引 言
隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的迅速發(fā)展,將眾多的計(jì)量點(diǎn)數(shù)據(jù)進(jìn)行采集、傳輸、處理已經(jīng)成為現(xiàn)實(shí)。自動(dòng)抄表(the Automatic Meter Reading,AMR)技術(shù)應(yīng)運(yùn)而生,逐漸成為抄表技術(shù)的主流。
l 電力集中抄表系統(tǒng)的構(gòu)成
電力集中抄表系統(tǒng)采用三層體系結(jié)構(gòu),如圖1所示。第一層是主站服務(wù)器,其主要作用是負(fù)責(zé)存儲(chǔ)多功能電表的數(shù)據(jù),實(shí)現(xiàn)對(duì)儀表的遠(yuǎn)程監(jiān)控、遠(yuǎn)程控制等功能。服務(wù)器安裝在客戶服務(wù)中心的抄表主站,通過(guò)GPRS/GSM來(lái)查收各個(gè)多功能電表的相關(guān)數(shù)據(jù)和參數(shù)。第二層是集中器,集中器通過(guò)GPRS/GSM與主站服務(wù)器相連,通過(guò)CAN總線與第三層的采集終端相連,完成與采集器和主站服務(wù)器的數(shù)據(jù)通信工作,第三層是采集器。在采集器中嵌入了各種標(biāo)準(zhǔn)通信規(guī)約,可實(shí)現(xiàn)對(duì)各種電表的采集。采集器可同時(shí)采集、存儲(chǔ)64塊電表的數(shù)據(jù)。它既要完成電表的電量數(shù)據(jù)采集工作,還要根據(jù)系統(tǒng)的要求完成與集中器之間的數(shù)據(jù)通信,將需要傳送的電量數(shù)據(jù)送到集中器中。通過(guò)GPRS/GSM無(wú)線通信,能夠及時(shí)、方便地進(jìn)行系統(tǒng)的遠(yuǎn)程信息傳輸,與主站服務(wù)器實(shí)現(xiàn)信息交換;每臺(tái)集中器通過(guò)CAN總線,可以管理最多110個(gè)采集器。
2 CAN總線通信系統(tǒng)設(shè)計(jì)
2.1 CAN總線簡(jiǎn)介
控制器局域網(wǎng)(Controller Area Network,CAN)是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,具有技術(shù)先進(jìn),可靠性高,功能完善,成本合理等優(yōu)越性,已被廣泛應(yīng)用于各個(gè)自動(dòng)化控制系統(tǒng)中。該設(shè)計(jì)給出CAN總線節(jié)點(diǎn)方案,采用內(nèi)置多路CAN總線控制器LPC2294作為主控制器。
2.2 CAN節(jié)點(diǎn)硬件電路組成
圖2給出CAN節(jié)點(diǎn)硬件電路,由AMR微控制器LPC2294、CAN總線收發(fā)器TJAl050T、高速光耦6N137和電源隔離模塊B0505S等組成。
2.2.1 控制器特點(diǎn)
該設(shè)計(jì)選用的LPC2294是Philips公司新推出的一款功能強(qiáng)大、超低功耗、具有ARM7TDMI內(nèi)核的32位微控制器。它具有144腳封裝,2個(gè)32位定時(shí)器,8路10位ADC,4路CAN通道和PWM通道以及多達(dá)9個(gè)外部中斷,內(nèi)部嵌入256 KB高速FLASH存儲(chǔ)器和16 KB靜態(tài)RAM,包含76(使用了外部存儲(chǔ)器)~112(單片)個(gè)GPIO口。如此豐富的片上資源完全可以滿足一般工業(yè)控制的需要,同時(shí)還可以減少系統(tǒng)硬件設(shè)計(jì)的復(fù)雜度。另外,LPC2294支持JTAG實(shí)時(shí)仿真和跟蹤、128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu),能夠使32位代碼在高達(dá)60 MHz的操作頻率下運(yùn)行。LPC2294內(nèi)部集成有4路CAN控制器;符合CAN規(guī)范CAN2.OB,ISO11989-1標(biāo)準(zhǔn);總線數(shù)據(jù)波特度均可達(dá)1 Mb/s;可訪問(wèn)32位的寄存器和RAM;全局驗(yàn)收過(guò)濾器可識(shí)別幾乎所有總線的11位和29位Rx標(biāo)識(shí)符;驗(yàn)收過(guò)濾器為選擇標(biāo)準(zhǔn)標(biāo)識(shí)符提供了FullCAN-style自動(dòng)接收功能。作為該設(shè)計(jì)的核心部件,LPC2294不僅擔(dān)起主控制器的作用,同時(shí)還作為CAN網(wǎng)絡(luò)的節(jié)點(diǎn)控制器,與網(wǎng)絡(luò)中其他節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)傳輸與交換。
2.2.2 收發(fā)器特點(diǎn)
收發(fā)器TJAl050T是CAN協(xié)議控制器和物理總線之間的接口,它與“。ISO11898”標(biāo)準(zhǔn)完全兼容。CANH與CANL理想配合,可使電磁輻射減到更低。除此之外,TJAl050T不上電時(shí),總線呈現(xiàn)無(wú)源特性,這使得TJAl050T在性能上大大優(yōu)于以前的CAN總線收發(fā)器。TJAl050T有高速和靜音(它們由引腳“S”來(lái)控制)兩種工作模式。在高速模式中,總線輸出信號(hào)有固定的斜率,并且以盡量快的速度切換。高速模式適用F最大位速度和最大總線長(zhǎng)度的情況,而且此時(shí)其收發(fā)器循環(huán)延遲最??;在靜音模式時(shí),發(fā)送器是禁能的,而不管TxD的輸入信號(hào)。靜音模式可以防止CAN控制器不受控制時(shí)對(duì)網(wǎng)絡(luò)通信造成堵塞。
3 CAN總線通信系統(tǒng)軟件設(shè)計(jì)
對(duì)于LPC2294微處理器,CAN控制器完全是基于事件觸發(fā)的,即在本身狀態(tài)發(fā)生改變時(shí),CAN控制器會(huì)把狀態(tài)變化的結(jié)果告訴微處理器。因此中心微處理器可以采用中斷方式或者輪詢方式對(duì)CAN控制器做出相應(yīng)的處理。各CAN節(jié)點(diǎn)按規(guī)定格式和周期發(fā)送數(shù)據(jù)到總線上,同時(shí)根據(jù)需要各取所需報(bào)文。對(duì)于接收數(shù)據(jù),則采用中斷的方式實(shí)現(xiàn),一旦中斷發(fā)生,即將接收的數(shù)據(jù)裝載到相應(yīng)的報(bào)文寄存器中。此時(shí)利用屏蔽濾波寄存器對(duì)接收?qǐng)?bào)文的標(biāo)識(shí)符和預(yù)先在接收緩沖器初始化時(shí)設(shè)定的標(biāo)識(shí)符進(jìn)行有選擇地逐位比較,只有標(biāo)識(shí)符匹配的報(bào)文才能進(jìn)入接收緩沖器,那些不符合要求的報(bào)文將被屏蔽于接收緩沖器外,從而減輕CPU處理報(bào)文的負(fù)擔(dān)。
3.1 CAN控制器初始化
初始化CAN控制器的操作包括硬件使能、軟件復(fù)位、設(shè)置報(bào)警界限、設(shè)置總線波特率、設(shè)置中斷工作方式、設(shè)置驗(yàn)收濾波器工作方式、設(shè)置工作模式并啟動(dòng)CAN等。初始化程序如下:
3.2 數(shù)據(jù)發(fā)送
將待發(fā)送的數(shù)據(jù)打包成符合CAN協(xié)議的幀格式后,便可寫(xiě)入發(fā)送緩沖區(qū),并啟動(dòng)發(fā)送。在寫(xiě)發(fā)送緩沖區(qū)前必須查詢其狀態(tài)。LPC2294中的每個(gè)CAN控制器有3個(gè)發(fā)送緩沖區(qū),它們的狀態(tài)可通過(guò)查詢CANSR得知。只有當(dāng)其中有空閑的發(fā)送緩沖區(qū)時(shí)才可將數(shù)據(jù)寫(xiě)入。在發(fā)送大量數(shù)據(jù)時(shí),這一步顯得尤其重要,否則將不能保證發(fā)送的可靠性。啟動(dòng)發(fā)送成功后,只能通過(guò)查詢cANGSR的TCS位或配合發(fā)送成功中斷來(lái)判斷數(shù)據(jù)是否發(fā)送成功。
3.3 數(shù)據(jù)接收
接收數(shù)據(jù)可采用查詢方式或中斷方式。在某一段時(shí)間內(nèi),CAN總線并不總是在活動(dòng)。為了提高效率,可采用中斷方式,在初始化程序中必須使能接收中斷。在中斷服務(wù)子程序中,讀取CANICR,判斷是否有接收中斷標(biāo)志,有則讀取接收緩沖區(qū)數(shù)據(jù)。為了防止接收緩沖區(qū)數(shù)據(jù)溢出,可開(kāi)辟一個(gè)循環(huán)接收數(shù)據(jù)隊(duì)列來(lái)暫時(shí)存儲(chǔ)數(shù)據(jù),主程序則通過(guò)查詢?cè)撽?duì)列獲得總線數(shù)據(jù)。
4 總結(jié)
基于ARM的CAN總線,其電力集中抄表系統(tǒng)的數(shù)據(jù)通信具有很強(qiáng)的實(shí)時(shí)性、可靠性和抗干擾性,該系統(tǒng)的樣機(jī)正在進(jìn)行網(wǎng)測(cè)試,以期通過(guò)研究和改進(jìn),進(jìn)一步提高程序的通信處理、糾錯(cuò)和容錯(cuò)能力。