引 言
在生產(chǎn)現(xiàn)場控制系統(tǒng)中,智能設(shè)備與常規(guī)電氣設(shè)備的安裝、調(diào)試與維護(hù)需要相當(dāng)數(shù)量的電氣技術(shù)人員,如何高效、批量、規(guī)范地培養(yǎng)高級電氣操作人員是教儀廠商急需解決的問題。它要求設(shè)備具備通信功能,讓教師能掌握訓(xùn)練過程的動態(tài)指標(biāo),從而了解學(xué)員的實(shí)際實(shí)驗(yàn)情況,可對實(shí)驗(yàn)過程進(jìn)行控制,實(shí)現(xiàn)分類指導(dǎo)。
本文通過對CAN(控制器局域網(wǎng))協(xié)議及其應(yīng)用的研究,利用CAN通信控制器、CAN收發(fā)器以及增強(qiáng)型微控制器等元器件,研制并開發(fā)一種基于CAN總線的應(yīng)用系統(tǒng)——電工實(shí)驗(yàn)指導(dǎo)系統(tǒng),在電工實(shí)驗(yàn)室開出網(wǎng)絡(luò)化實(shí)驗(yàn)教學(xué)課程,從而改變常規(guī)教學(xué)方法的不足,讓學(xué)生更加自主、靈活地完成其實(shí)驗(yàn)任務(wù),并可根據(jù)自己的情況進(jìn)行擴(kuò)展實(shí)驗(yàn),為建立開放性實(shí)驗(yàn)實(shí)訓(xùn)設(shè)施基地打下良好的基礎(chǔ),還能使學(xué)員體會到網(wǎng)絡(luò)實(shí)驗(yàn)的實(shí)際價(jià)值,了解CAN總線控制技術(shù)的基本知識。
1 CAN總線網(wǎng)絡(luò)通信層的模型與協(xié)議
針對不同的應(yīng)用領(lǐng)域可選擇不同的應(yīng)用規(guī)范,對于一般的應(yīng)用領(lǐng)域,采用"命令-響應(yīng)"模式的通信協(xié)議,就可以實(shí)現(xiàn)可靠而有效的"主-從"式通信網(wǎng)絡(luò)。如果需要進(jìn)行大量數(shù)據(jù)交換或通信方式靈活的CAN網(wǎng)絡(luò),則可采用一些標(biāo)準(zhǔn)的多主通信協(xié)議,如HilonB協(xié)議,或者采用CAN2.0協(xié)議中遠(yuǎn)程幀定義。在汽車電子產(chǎn)品領(lǐng)域,通常參考或直接采用J1939等標(biāo)準(zhǔn)規(guī)范。在電力通信設(shè)計(jì)領(lǐng)域,則常采用DeviceNETV2.0規(guī)范,該規(guī)范己被我國采納國家標(biāo)準(zhǔn)。在智能樓宇通信領(lǐng)域,一般使用Modbus協(xié)議或延用RS-485模式的"主-從"協(xié)議。
本系統(tǒng)在建立實(shí)際CAN總線通信網(wǎng)絡(luò)時(shí),使用CAN底層硬件來實(shí)現(xiàn)對物理層、數(shù)據(jù)鏈路層的控制。應(yīng)用CAN2.0A/B協(xié)議規(guī)定的通信檢錯等機(jī)制保證CAN總線通信網(wǎng)絡(luò)的可靠性,建立了用戶協(xié)議層的通信協(xié)議,并對網(wǎng)絡(luò)上的通信數(shù)據(jù)流進(jìn)行解釋與管理。其用戶協(xié)議層(應(yīng)用層)通信協(xié)議由數(shù)據(jù)幀和遠(yuǎn)程幀格式定義來實(shí)現(xiàn),屬于"主-從"式結(jié)構(gòu)。
2 硬件系統(tǒng)的組成與模塊硬件的設(shè)計(jì)
基于現(xiàn)場總線的電工實(shí)驗(yàn)指導(dǎo)系統(tǒng)的硬件主要由主機(jī)、接口卡、智能節(jié)點(diǎn)(從機(jī))組成。主機(jī)中有應(yīng)用程序和數(shù)據(jù)庫等文件;接口卡是CAN實(shí)現(xiàn)通信的橋梁,同時(shí),在網(wǎng)絡(luò)中它也作為一個(gè)節(jié)點(diǎn);智能節(jié)點(diǎn)由基于現(xiàn)場總線、單片機(jī)技術(shù)的數(shù)據(jù)采集與傳輸模塊以及實(shí)際操作接線裝置等組成。節(jié)點(diǎn)能夠在計(jì)算機(jī)的控制下對學(xué)生的電工實(shí)驗(yàn)進(jìn)行智能指導(dǎo)。
2.1 數(shù)據(jù)采集與傳輸模塊的設(shè)計(jì)
數(shù)據(jù)采集與傳輸模塊可分為5個(gè)主要部分,即:由單片機(jī)AT89S52組成的主機(jī)部分;由SJA1000、PCA82C250、光電隔離電路等組成的CAN總線控制及接口部分;由+5V基準(zhǔn)電壓源、驅(qū)動三極管、LED指示燈、數(shù)碼管組成的電源與顯示部分;采用4片8255作為I/O口的擴(kuò)展,并與操作工位后端接口等電路組成的數(shù)據(jù)轉(zhuǎn)換與采集部分;實(shí)際操作工位。
AT89S52單片機(jī)作為主機(jī),負(fù)責(zé)對SJA1000進(jìn)行初始化,通過控制SJA1000實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信,實(shí)施對實(shí)驗(yàn)數(shù)據(jù)的采集,采用P1口控制動態(tài)掃描顯示與指導(dǎo)實(shí)驗(yàn)相關(guān)的數(shù)據(jù)等。選用74L,S373作為地址鎖存器,用74LS138對8255、SJA1000進(jìn)行片選。
2.1.1 CAN總線控制及接口部分
在從機(jī)的運(yùn)行過程中,由于主控CPU需完成多項(xiàng)工作任務(wù),在要求具有一定的靈活性的同時(shí),還需使系統(tǒng)具有一定的可擴(kuò)展性,因此,從機(jī)中的CAN控制器選用Philips公司的SJA1000。選用PCA82C250作為CAN總線的收發(fā)器,它也是CAN協(xié)議控制器與物理層之問的接口,具有抗瞬變、抗射頻和抗電磁干擾的性能,內(nèi)部的限流電路具有電路短路時(shí)對傳送輸出級進(jìn)行保護(hù)的功能。在節(jié)點(diǎn)(工位機(jī))與介質(zhì)之間加入光耦電路,即SJA1000的TX0和RX0并不是直接與82C250的TXD和RXD相連,而是通過高速光耦6N137后與82C250相連。6N137為高速光隔器件,作為外線路與系統(tǒng)之問的隔離,并采用兩個(gè)完全隔離電源VCC和VDD分別對光耦兩部分電路供電,從而達(dá)到信號之間的完全隔離,這樣可有效地提高系統(tǒng)的抗干擾能力和內(nèi)部系統(tǒng)的安全性。SJA1000的ADO~AD7連接到AT89S52的P0口,CS連接到74LS138的Y4端口,Y4為0時(shí)CPU片外存儲器地址可選中SJA1000,CPU通過這些地址可對SJA1000執(zhí)行相應(yīng)的讀寫操作,SJA1000的RD、WR、ALE分別與AT89S52的對應(yīng)引腳相連,可將INT接AT89S52的INT0或INT1。AT89S52可通過中斷或查詢方式訪問SJA1000,也可將INT接AT89S52的其他端口,采用查詢方式訪問SJA1000。接口電路如圖1所示。
2.1.2 數(shù)據(jù)轉(zhuǎn)換與采集部分
1)數(shù)據(jù)轉(zhuǎn)換電路的設(shè)計(jì)
根據(jù)電氣控制原理的分析與研究,從中優(yōu)化出一種比較通用的接線方法,讓對應(yīng)的點(diǎn)按操作順序依次向CPU的I/O口提供一定規(guī)則的+5 V電平,即可完成采樣和數(shù)字量的轉(zhuǎn)換。學(xué)生操作工位的正面為與實(shí)際接線端子插孔,其背面為與之相連的信號線,信號線的另一端與8255的某一固定的端口相接。
2)采樣電路的設(shè)計(jì)
工位面機(jī)采用4片8255作為I/O口的擴(kuò)展,并通過20 kΩ下拉電阻與操作工位后端對應(yīng)的接線端子相接。在8255初始化時(shí),讓其工作于普通讀方式,此時(shí),如果某端子為高電平,則在對應(yīng)的8255 I/O口可采集到高電平。如果所有接線端子均為高電平,則總電流會接近7805的最大輸出電流。因此,需采用分相、分電路的方法進(jìn)行實(shí)驗(yàn)指導(dǎo)操作,完成實(shí)驗(yàn)的指導(dǎo)任務(wù)。 2.1.3 單片機(jī)對硬件電路各部分訪問的地址
硬件電路原理圖設(shè)計(jì)好后,其訪問地址即可根據(jù)具體的情況予以確定。本文采用P2.5~2.7口控制74LS138,分別對4片8255和SJA1000進(jìn)行片選和訪問。其訪問地址如表1所示。
3 CAN總線電工實(shí)驗(yàn)系統(tǒng)節(jié)點(diǎn)軟件
3.1 數(shù)據(jù)采集與顯示在節(jié)點(diǎn)中的實(shí)現(xiàn)
本文采用AT89S52單片機(jī)作為工位(節(jié)點(diǎn))系統(tǒng)的控制、數(shù)據(jù)采集和顯示的核心,使用Keil uVision2集成開發(fā)環(huán)境進(jìn)行軟件的開發(fā)與調(diào)試。
由于從機(jī)需要完成顯示、數(shù)據(jù)采集與傳輸?shù)裙δ?,因此至少需采?個(gè)中斷源進(jìn)行程序控制,即INT0和T0。其中:INT0用于指示CAN總線數(shù)據(jù)的接收與發(fā)送等進(jìn)程的外部中斷;T0控制顯示掃描時(shí)鐘等。數(shù)據(jù)采樣過程分為兩種情況:一是初始化時(shí)的自動初始采樣;二是在程序的運(yùn)行過程中,當(dāng)接收到數(shù)據(jù)幀時(shí),自動執(zhí)行一次采樣。
1)顯示部分的功能與過程分析
顯示電路的功能有3種:顯示初始化成功、有關(guān)出錯和對學(xué)生實(shí)驗(yàn)步驟進(jìn)行指示等信息。這些信息可由用戶根據(jù)硬件結(jié)構(gòu)和軟件的需要自行定義。本文采用74LS47譯碼驅(qū)動集成電路進(jìn)行驅(qū)動與顯示控制。通過軟件的運(yùn)行,使P1口分別控制6個(gè)數(shù)碼管共陽端的通斷,同時(shí),由P0口向74LS47譯碼驅(qū)動電路提供數(shù)據(jù),實(shí)現(xiàn)了顯示的動態(tài)掃描控制。初始化正常時(shí)自定義顯示為004321,正常運(yùn)行時(shí)顯示課題號、相號、接線步驟標(biāo)號或出錯時(shí)顯示錯誤標(biāo)志號。
2)數(shù)據(jù)采集的原理與過程分析
數(shù)據(jù)采集的原理是:CPU通過其P2口的相應(yīng)引腳控制向與其對應(yīng)的分相首端子提供+5 V電平,其余接點(diǎn)按一定規(guī)則用信號線相連,從而使每個(gè)端子上出現(xiàn)0電平或高電平,這樣對應(yīng)端子的狀態(tài)可通過8255讀取。即按一定順序接線時(shí),可在對應(yīng)的8255口讀到不同的采樣數(shù)據(jù)。8255的每一個(gè)端口均可讀到一個(gè)8位二進(jìn)制數(shù)(1字節(jié)),將這些數(shù)據(jù)與實(shí)驗(yàn)操作步驟關(guān)聯(lián),從而使每次操作得到不同的數(shù)據(jù)。本系統(tǒng)需4片8255,一次采樣可得到12個(gè)8位二進(jìn)制數(shù)。
在單片機(jī)的RAM空間設(shè)置一個(gè)20字節(jié)的數(shù)組作為采集數(shù)據(jù)的存儲空間。在上電復(fù)位時(shí),使8255均初始化為普通讀方式,并向數(shù)組中寫入初始化數(shù)據(jù)。正常運(yùn)行后,每接收到一個(gè)數(shù)據(jù)幀就進(jìn)行一次數(shù)據(jù)的采集。所采集的數(shù)據(jù)直接按CAN總線通信的幀格式對數(shù)組中的內(nèi)容進(jìn)行更新,以備讀取與上傳。數(shù)據(jù)采集的存儲地址與內(nèi)容如表2所示。
3.2 通信軟件的設(shè)計(jì)
本文中主站采用PC15121接口卡作為接口設(shè)備,在通信方式與協(xié)議確定后,主站與從站的通信可調(diào)用該產(chǎn)品的接口函數(shù)來實(shí)現(xiàn)。從站(工位)CAN節(jié)點(diǎn)的控制軟件采用模塊化設(shè)計(jì)方法。主要有5個(gè)模塊:SJA1000初始化模塊、SJA1000接收數(shù)據(jù)模塊、SJA1000發(fā)送數(shù)據(jù)模塊、SJA1000錯誤處理模塊;系統(tǒng)的其他任務(wù)模塊。
3.3 智能節(jié)點(diǎn)程序的運(yùn)行
從機(jī)的主要功能為硬件的初始化、進(jìn)入正常的顯示、等待中斷事件的發(fā)生、接收數(shù)據(jù)幀、數(shù)據(jù)處理并送顯、等待接收遠(yuǎn)程幀并返回所需的數(shù)據(jù)幀和數(shù)據(jù)的采集等。其主程序流程如圖2所示。外部中斷服務(wù)程序流程如圖3所示。
在主機(jī)程序設(shè)計(jì)中,接口程序與數(shù)據(jù)處理的算法設(shè)計(jì)是關(guān)鍵。其中,主機(jī)接口卡可作為一個(gè)智能節(jié)點(diǎn),網(wǎng)絡(luò)中的數(shù)據(jù)通信主要是對該卡的操作。
4 結(jié)束語
本文對CAN總線網(wǎng)絡(luò)的軟硬件系統(tǒng)進(jìn)行了分析與研究,采用了一種基于CAN總線的組網(wǎng)協(xié)議與數(shù)據(jù)傳輸方式,并將其應(yīng)用于電工實(shí)驗(yàn)指導(dǎo)系統(tǒng)中,以"主一從"通信模式實(shí)現(xiàn)網(wǎng)絡(luò)通信,達(dá)到了預(yù)期目標(biāo)。設(shè)備能滿足實(shí)驗(yàn)環(huán)境的需要。