摘 要: 本文介紹了一個基于CAN總線的高低溫試驗(yàn)箱監(jiān)控系統(tǒng),其特點(diǎn)在于應(yīng)用CAN總線進(jìn)行信息傳遞。文中較詳細(xì)的介紹了以MCP2510總線控制器為核心的CAN總線接口板,包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分。其中,硬件部分著重MCP2510的結(jié)構(gòu)特點(diǎn)與接口設(shè)計(jì),軟件部分著重MCP2510與單片機(jī)的編程設(shè)計(jì)。
關(guān)鍵詞: CAN總線;MCP2510;編程 高低溫試驗(yàn)箱主要用于考核產(chǎn)品的高低溫性能,是企業(yè)進(jìn)行產(chǎn)品環(huán)境試驗(yàn)必不可少的設(shè)備,它主要是由箱體、制冷裝置、加熱裝置組成,并有溫度顯示和簡單的控制系統(tǒng)。由于高低溫試驗(yàn)持續(xù)時間長,工作時有噪音、振動,環(huán)境較為惡劣,因此實(shí)現(xiàn)對高低溫試驗(yàn)箱的計(jì)算機(jī)監(jiān)控有一定的現(xiàn)實(shí)意義。 傳統(tǒng)的設(shè)備監(jiān)控系統(tǒng)多采用RS232、RS485等串行通訊方式,實(shí)時性、擴(kuò)展性和可靠性較差。CAN總線是現(xiàn)場總線中的一種,它能有效地支持分布式控制和實(shí)時控制,是一種開放式、數(shù)字化、多點(diǎn)通信的串行通訊網(wǎng)絡(luò)。本文設(shè)計(jì)了一種基于CAN總線的分布式高低溫試驗(yàn)箱監(jiān)控系統(tǒng)。該系統(tǒng)結(jié)構(gòu)簡單,成本低,且實(shí)時性、擴(kuò)展性和可靠性好,具有較強(qiáng)的實(shí)用價值。 1 系統(tǒng)的總體結(jié)構(gòu) 該系統(tǒng)包括一個主控制器(工業(yè)控制計(jì)算機(jī),含PC-CAN接口卡)和多個節(jié)點(diǎn)控制器(CAN接口控制板),并采用總線式網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),無源抽頭連接,因而系統(tǒng)的可靠性較高。其信息傳輸采用CAN通信協(xié)議,通訊介質(zhì)采用雙絞線。 系統(tǒng)的組成結(jié)構(gòu)如圖1所示。 圖中工控機(jī)(含PC-CAN接口卡)安裝在控制室,高低溫試驗(yàn)箱放在工作間,兩地之間用雙絞線進(jìn)行連接,距離約50m,雙絞線的兩端需短接120Ω的終端匹配電阻。 工控機(jī)選用臺灣研華的IPC610,具有良好的軟硬件兼容性,在該工控機(jī)的ISA插槽中插入型號為PCL-841的CAN-PC接口卡,通過該卡即可把工控機(jī)連接到CAN總線上。工控機(jī)的控制軟件可設(shè)置高低溫試驗(yàn)箱的工作模式:高溫試驗(yàn)、低溫試驗(yàn)、溫度沖擊試驗(yàn)、自定義。每種模式均可設(shè)置預(yù)定溫度和保持時間,溫度沖擊試驗(yàn)還能設(shè)置循環(huán)次數(shù),自定義模式由上述三種基本模式按一定流程組成,每個節(jié)點(diǎn)均可獨(dú)立設(shè)置其工作參數(shù)。
圖1 高低溫試驗(yàn)箱監(jiān)控系統(tǒng)的組成 CAN接口控制板是系統(tǒng)的核心,它負(fù)責(zé)與CAN總線進(jìn)行通訊,另外還完成溫度信號的采集、加熱與制冷裝置的控制等功能,內(nèi)有CAN總線收發(fā)器及控制器、單片機(jī)、溫度傳感器接口等部件。加電后,CAN接口控制板通過溫度傳感器,定時采集高低溫試驗(yàn)箱的溫度數(shù)據(jù)并上傳給工控機(jī),供其顯示與儲存。工控機(jī)根據(jù)用戶設(shè)置的工作模式發(fā)出特定指令至CAN總線,CAN接口控制板收到該指令后,根據(jù)預(yù)定的算法控制加熱與制冷裝置的啟動、停止,完成相應(yīng)的操作。 下面將重點(diǎn)介紹CAN接口控制板的軟硬件設(shè)計(jì)。 2 CAN接口控制板的硬件設(shè)計(jì) CAN接口控制板由MCP2551總線收發(fā)器、MCP2510總線控制器和PIC12C672單片機(jī)等部件組成。其電路原理如圖2所示
![]() MCP2551總線收發(fā)器與系統(tǒng)物理總線相連,具有差分發(fā)射和接收能力,可將許多節(jié)點(diǎn)與同一網(wǎng)絡(luò)相連接。它作為MCP2510總線控制器MCP2510和系統(tǒng)物理總線之間的接口。 MCP2510總線控制器擔(dān)負(fù)著報(bào)文的發(fā)送、接收、過濾等工作,是CAN總線接口控制板的核心器件。它支持CAN總線V2.0A/B技術(shù)規(guī)范,能夠發(fā)送和接收標(biāo)準(zhǔn)和擴(kuò)展報(bào)文,同時具備驗(yàn)收過濾以及報(bào)文管理功能。該器件包含三個發(fā)送緩沖器和兩個接收緩沖器,減少了MCU的管理負(fù)擔(dān)。MCP2510通過SPI接口與MCU進(jìn)行數(shù)據(jù)通訊,其數(shù)據(jù)傳輸速率可高達(dá)5Mb/s。 為了簡化電路設(shè)計(jì),降低成本,我們選用PIC12C672單片機(jī)作為MCP2510的控制MCU。PIC12C672單片機(jī)是美國Microchip公司生產(chǎn)的RISC單片機(jī),只有35條指令,指令周期可短至1us,除跳轉(zhuǎn)指令外其余均為單周期指令,運(yùn)行效率高。其內(nèi)部集成了2K(14bit寬度)的編程空間和128字節(jié)的RAM,另外還集成有4通道的8位A/D轉(zhuǎn)換器、4MHz的RC振蕩器、上電復(fù)位電路、看門狗電路等。它僅有8個引腳,體積小,外圍電路簡單,具有較高的性價比。 MCP2510通過SPI接口與MCU通訊,但PIC12C672本身沒有SPI接口,因此用四條普通I/O線GP5、GP4、GP1、GP2分別接至MCP2510的CS、SO、SI、SCK引腳,用軟件算法實(shí)現(xiàn)SPI接口協(xié)議。SPI接口讀命令時序如下圖3所示。在讀操作開始時,CS引腳將被置為低電平,隨后讀指令和8位地址碼(A7至A0)將被依次送入MCP2510,并在SCK的上升沿縮存每個數(shù)據(jù)位。在接收到讀指令和地址碼之后,MCP2510指定地址寄存器中的數(shù)據(jù)將在SCK的下降沿輸出到SO引腳。拉高CS引腳電平結(jié)束讀操作。
![]() MCP2510外接8MHz晶體作振蕩源,將CAN總線速度配置為125kbps。MCP2510有三個引腳(TX0RTS、TX1RTS、TX2RTS)可以配置成通用的輸入腳,兩個引腳(RX0BF、RX1BF)能被配置成數(shù)字輸出腳,由PIC12C672單片機(jī)通過MCP2510的SPI接口對這些引腳進(jìn)行控制。在此應(yīng)用中,TX0RTS、TX1RTS、TX2RTS配置成輸入腳,分別連接上三位撥碼開關(guān),用于設(shè)置CAN接口板的ID地址。RX0BF、RX1BF配置成數(shù)字輸出腳,分別通過驅(qū)動電路、繼電器控制高低溫箱的加熱裝置、制冷裝置。 3 CAN接口控制板的軟件設(shè)計(jì) CAN接口控制板的主要功能有:定時采集溫度數(shù)據(jù)并通過CAN總線發(fā)送至工控機(jī);收到工控機(jī)的升溫、降溫指令后,根據(jù)預(yù)定的算法控制加熱與制冷裝置的啟動、停止。因此,除硬件設(shè)計(jì)外,我們還需編寫PIC12C672單片機(jī)的程序,以實(shí)現(xiàn)上述CAN接口控制板的功能。采用匯編語言編程,使用福州貝能的PICRICE仿真器進(jìn)行開發(fā)、調(diào)試,并用PICSTART PLUS編程器燒寫程序。 單片機(jī)的主程序流程圖如圖4所示:
![]() 圖4 單片機(jī)的主程序流程圖 PIC12C672的初始化主要完成I/O腳的配置,定時器中斷的設(shè)置,以及A/D轉(zhuǎn)換模塊的設(shè)置。MCP2510的初始化的主要是將總線時鐘頻率設(shè)為125kbps,配置中斷信號,將TX0RTS、TX1RTS、TX2RTS配置成通用的輸入腳,將RX0BF、RX1BF配置成數(shù)字輸出腳。 MCP2510的發(fā)送操作通過三個發(fā)送緩沖器來實(shí)現(xiàn),這三個發(fā)送緩沖器各占據(jù)14個字節(jié)的SRAM。第一字節(jié)是控制寄存器TXBNCTRL,該寄存器里的內(nèi)容設(shè)定了信息發(fā)送的條件,且給出了信息的發(fā)送狀態(tài),第二至第六字節(jié)用來存放標(biāo)準(zhǔn)的和擴(kuò)展的標(biāo)識符以及仲裁信息,最后八個字節(jié)用來存放待發(fā)送的數(shù)據(jù)信息。 MCP2510的接收操作通過三個接收緩沖器來實(shí)現(xiàn),在三個接收緩沖器中,MAB(報(bào)文集成緩沖器)總能夠接收來自總線的下一條報(bào)文,其余兩個接收緩沖器RXB0和RXB1則從協(xié)議引擎接收完整的報(bào)文。MAB對接收到的報(bào)文進(jìn)行組合,并將滿足驗(yàn)收濾波器條件的報(bào)文傳送到至RXBN緩沖器,并且該接收緩沖器對應(yīng)的位將置1,器件會在INT引腳產(chǎn)生一個中斷, 顯示接收到有效報(bào)文。 |
(轉(zhuǎn)載)