基于CAN總線和Internet的分布式網(wǎng)絡(luò)監(jiān)控系統(tǒng)
5.2can總線通信程序
can總線通信程序包括can初始化、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收等。
初始化can控制器的操作包括:硬件使能、軟件復(fù)位、設(shè)置報(bào)警界限、設(shè)置總線波特率、設(shè)置中斷工作方式、設(shè)置驗(yàn)收濾波器工作方式、設(shè)置工作模式并啟動(dòng)can等。在初始化過程中要注意數(shù)據(jù)發(fā)送設(shè)備和數(shù)據(jù)接收設(shè)備的波特率應(yīng)相同,否則設(shè)備之間無法進(jìn)行通信。
can初始化完成后,進(jìn)入數(shù)據(jù)的接收和發(fā)送階段。為保證發(fā)送數(shù)據(jù)的完整性,采用查詢方式發(fā)送數(shù)據(jù);同時(shí)為保證接收數(shù)據(jù)的實(shí)時(shí)性,采用中斷方式接收數(shù)據(jù)。數(shù)據(jù)發(fā)送和接收流程圖如圖6所示。
發(fā)送數(shù)據(jù)時(shí),將待發(fā)送的數(shù)據(jù)打包成符合can協(xié)議的幀格式后寫入發(fā)送緩沖區(qū),并自動(dòng)發(fā)送。在寫發(fā)送緩沖區(qū)前必須查詢其狀態(tài),只有在有空閑的發(fā)送緩沖區(qū)時(shí)才將數(shù)據(jù)寫入。啟動(dòng)發(fā)送成功后,通過查詢can狀態(tài)寄存器或配置發(fā)送成功中斷來判斷數(shù)據(jù)是否發(fā)送成功。
采用中斷方式接收數(shù)據(jù),在初始化程序中必須使能接收中斷。在中斷服務(wù)子程序中,讀取can中斷允許寄存器,判斷是否有接收中斷標(biāo)志,有則讀取接收緩沖區(qū)數(shù)據(jù)。為防止接收緩沖區(qū)中數(shù)據(jù)溢出,可開辟一個(gè)循環(huán)接收數(shù)據(jù)隊(duì)列來暫時(shí)存儲(chǔ)數(shù)據(jù),主程序則通過查詢?cè)撽?duì)列來獲得總線數(shù)據(jù)。
6測(cè)試結(jié)果
系統(tǒng)安裝調(diào)試后,經(jīng)過一段時(shí)間的運(yùn)行,系統(tǒng)穩(wěn)定可靠,無異?,F(xiàn)象。圖7是系統(tǒng)主服務(wù)器接收到的數(shù)據(jù),其中ady表示a相電壓,adl表示a相電流,plv表示頻率,wg表示無功功率,yg表示有功功率,cjsj表示采集時(shí)間。
7結(jié)束語
本文采用can總線傳輸技術(shù)解決鞍鋼集團(tuán)大孤山選礦廠數(shù)據(jù)采集與控制系統(tǒng)各部件之間的信號(hào)傳輸問題。基于can總線的采礦廠數(shù)據(jù)采集與控制系統(tǒng)簡(jiǎn)化了系統(tǒng)的傳輸線束,同時(shí)大大的提高了系統(tǒng)的可靠性和傳輸響應(yīng)的實(shí)時(shí)性,也為企業(yè)實(shí)現(xiàn)節(jié)能降耗、成本核算、過程優(yōu)化以及建立mes信息管理系統(tǒng)奠定了物理基礎(chǔ)。
參考文獻(xiàn)(略)
評(píng)論