王欣峰,任淑萍
(1.山西大學 工程學院 自動化系,山西 太原 030013;2.山西大學 工程學院 電子信息工程系,山西 太原 030013)
近年來,因礦燈使用管理不善而引發(fā)的礦山重、特大事故時有發(fā)生,礦燈的信息化管理還很薄弱,本文充分利用CAN總線的強大功能組成通信網(wǎng)絡,使用89C52單片機和SJA1000控制器設計了智能CAN節(jié)點硬件部分,并配以一定的軟件,開發(fā)出了基于CAN總線的智能礦燈充電架系統(tǒng)。可實現(xiàn)從充電、使用到自動統(tǒng)計、考勤等動態(tài)管理,通過局域網(wǎng)還可在辦公室內查詢、統(tǒng)計、打印有關信息等。
本系統(tǒng)結構如圖1 所示,包括上位監(jiān)控管理計算機、無線數(shù)據(jù)傳輸單元、帶有CAN接口的主控計算機、CAN總線和充電架。礦燈充電架的主要功能是為礦燈充電提供合適的電壓和電流,各個礦燈充電架獨立工作;無線數(shù)據(jù)傳輸單元用于把主控計算機收集到的數(shù)據(jù)發(fā)送給上位機監(jiān)控計算機;帶有CAN接口的主控計算機負責采集各個充電架的信息并進行處理;各個充電架之間的數(shù)據(jù)通過CAN總線進行通信。
網(wǎng)絡上信息的接收和發(fā)送是通過節(jié)點來完成的,智能節(jié)點是指節(jié)點本身是由微處理器和可編程CAN控制芯片組成的。該硬件電路主要由微處理器部分、隔離CAN收發(fā)器和CAN控制器三部分組成,如圖2 所示。本設計中所選用作為智能節(jié)點微處理器的是宏晶公司STC系列的STC89C52,負責礦燈的充電狀態(tài)以及礦燈信息的讀取,該系統(tǒng)采用+5V電源輸入。CAN控制器使用的是Philips公司生產SJA1000,該芯片是一款獨立的控制器,通常用于汽車和一般工業(yè)環(huán)境中的控制器局域網(wǎng),本設計采用的是PeliCAN模式。CAN協(xié)議控制器是通過PCA82C250和物理總線進行接口的,它能夠提供總線的差動發(fā)送和接收能力,具有高速性(最高可達1Mb/s)和抗瞬間干擾能力,且具有降低射頻干擾的斜率控制。
圖1 基于CAN總線的礦燈充電系統(tǒng)結構圖
無線數(shù)據(jù)傳輸模塊主要用于把主控機接收到的充電架信息發(fā)送到上位機,以便于管理人員對每個礦燈進行監(jiān)測以及考核礦工的出勤情況。本設計中采用Nordic公司推出的工作于2.4GHz ISM 頻段的nRF2401射頻芯片,該射頻芯片沒有復雜的通信協(xié)議,完全對用戶透明,同種產品之間可以自由通信。nRF2401芯片工作速率為0~1Mb/s,所需外圍元件極少,內置硬件CRC(循環(huán)冗余校驗),集成了頻率合成器、晶體振蕩器和調制解調器。該設計中采用ShockBurst TM收發(fā)模式,該模式系統(tǒng)具有編程簡單、穩(wěn)定性高等特點。配置好后,在nRF2401工作過程中,只需改變其最低一個字節(jié)中的內容,就可實現(xiàn)接收模式和發(fā)送模式之間的切換。如圖3 所示為nRF2401的硬件連接圖,需要注意的是nRF2401的工作電壓為1.9V~3.6V,但是可以直接和單片機的I/O引腳相連,為了工作穩(wěn)定,需要進行分壓處理。
圖2 智能節(jié)點
圖3 nRF2401的硬件電路
在PC機軟件設計中,使用VC++的通信模塊開發(fā)應用程序,該程序負責對充電架上傳輸過來的信號進行最終處理并存入數(shù)據(jù)庫,能實現(xiàn)實時監(jiān)測礦燈充電狀態(tài)、礦工狀態(tài)查詢、考勤管理等各項監(jiān)控功能。
CAN智能節(jié)點的軟件設計部分包括對CAN總線控制器的初始化、報文的發(fā)送和接受三部分。對CAN控制器的初始化過程主要是設置CAN的通信參數(shù),需要對CAN控制寄存器初始化的有:模式寄存器、時分寄存器、屏蔽寄存器、接收代碼寄存器、輸出控制寄存器、總線定時寄存器等。需要注意的是對這些寄存器的訪問只能在CAN控制器處于復位狀態(tài)下才可進行。圖4 為CAN總線控制器的初始化流程圖。
圖4 CAN總線控制器的初始化流程
初始化子函數(shù)如下:
void init_can()//初始化SJA100主控制器子函數(shù)
{CR=0X01;//控制寄存器為復位
CDR=0;//設置時鐘分頻器
ACR=0;//驗收碼寄存器
AMR=0XF;//驗收屏蔽寄存器
BTR0=0x31;//定時總線寄存器0
BTR1=0X18;//定時總線寄存器1
Ocr=0x55;//輸出控制寄存器
CR=0X6E;//控制寄存器進入工作
EA=1;//開中斷}
等發(fā)送緩沖區(qū)清空后,報文發(fā)送子程序從緩沖器中取出要發(fā)送的數(shù)據(jù),加上標識符等信息,成為信息幀,將信息幀發(fā)送到CAN控制器的發(fā)送緩沖區(qū)。數(shù)據(jù)信息的發(fā)送是在接收到主機的發(fā)送請求后且啟動發(fā)送命令后完成的。把信息由CAN控制器發(fā)送到總線則是由CAN控制器自動完成的。同理,報文接受的時候,從CAN總線把信息傳到CAN控制器的接收緩沖區(qū),這個過程也是由CAN控制器自動完成的。接收程序只需從接收緩沖區(qū)讀取信息,并將其存儲在數(shù)據(jù)存儲區(qū)。報文的發(fā)送和接收流程圖如圖5 所示。
圖5 報文發(fā)送和接收流程
無線數(shù)據(jù)傳輸模塊的軟件設計包括nRF2401的初始化、nRF2401的發(fā)送和接收數(shù)據(jù)。其中對nRF2401的初始化包括對收發(fā)模式、晶振頻率、收發(fā)信道頻率、地址、傳輸速率、CRC校驗、芯片發(fā)射功率等進行配置。該設計中,使用通道1在ShockBurst TM模式下進行數(shù)據(jù)傳輸,數(shù)據(jù)速率為250kb/s,收發(fā)信道頻率2 402MHz,晶振頻率16MHz。在發(fā)送數(shù)據(jù)時,首先讓該模塊為發(fā)送工作模式(引腳CE=1),配置接收端地址和有效數(shù)據(jù)后,啟動發(fā)送(引腳CE=0),發(fā)送端等待數(shù)據(jù)發(fā)送完成。當發(fā)送完成后模塊進入接收狀態(tài),接收接收端的應答數(shù)據(jù)。如果接收到數(shù)據(jù)則根據(jù)需要進行相應處理,因此在接收端的主循環(huán)里可以一直判斷發(fā)送標志位DR1是否為1,為1則表示接收到數(shù)據(jù),根據(jù)通信協(xié)議對其進行相應處理。
本文提出了一種利用CAN總線和無線數(shù)據(jù)傳輸技術開發(fā)礦用多功能充電架的設計方案,完成了相應的硬件設計并對軟件流程進行了分析。該系統(tǒng)的成功應用必將大大提高煤礦對礦燈充電的效率和質量,能夠較好地實現(xiàn)現(xiàn)場的監(jiān)測和管理。
[1]李朝青.PC機及單片機數(shù)據(jù)通信技術[M].北京:北京航空航天大學出版社,2004.
[2]郭天祥.51單片機C語言教程[M].北京:電子工業(yè)出版社,2012.
[3]王永華.現(xiàn)場總線技術及應用教程[M].第2版.北京:機械工業(yè)出版社,2012.
[4]艾學忠,金炳濤.具有安全監(jiān)管的鋰電池礦燈智能充電技術的研究[J].化工自動化及儀表,2010(2):100-101.
[5]曹志強.智能礦燈充電架通訊系統(tǒng)的研究[J].煤炭技術,2012(5):49-50.