CAN總線在啤酒發(fā)酵過程控制系統(tǒng)中的應(yīng)用
現(xiàn)場(chǎng)智能節(jié)點(diǎn)CAN
接口電路設(shè)計(jì)
現(xiàn)場(chǎng)智能節(jié)點(diǎn)的設(shè)計(jì)中,CAN總線網(wǎng)絡(luò)接口部分使用了Philips公司的CAN控制器芯片SJA1000和CAN總線收發(fā)器PCA82C250芯片。為了增強(qiáng)現(xiàn)場(chǎng)智能節(jié)點(diǎn)的抗干擾能力,總線收發(fā)器與控制器之間用高速光耦6N137隔離,接口電路如圖2所示。
為了保證SJA1000與AT89C52之間時(shí)鐘同步,本設(shè)計(jì)采用CLKOUT時(shí)鐘信號(hào)作為AT89C52的時(shí)鐘輸入;SJA1000的接AT89C52的端,通過中斷方式與CPU通信;PCA82C250的RS腳上接有一斜率電阻,電阻大小(16~140K)可根據(jù)總線通信速率適當(dāng)調(diào)整,本設(shè)計(jì)中取值47K;PC82C250的兩輸出引腳與CAN總線之間各接一個(gè)5的電阻,起一定的限流作用,從而保護(hù)PCA82C250免受過流的沖擊;為了濾除總線上的高頻干擾并具有一定的防電磁輻射的能力,CAN-H和CAN-L與地之間并聯(lián)了兩個(gè)30pF的電容。
現(xiàn)場(chǎng)智能節(jié)點(diǎn)CAN
通信軟件設(shè)計(jì)
現(xiàn)場(chǎng)智能節(jié)點(diǎn)的CAN通信軟件設(shè)計(jì)由三大部分組成:SJA1000初始化、數(shù)據(jù)接收和發(fā)送。節(jié)點(diǎn)的主程序完成對(duì)SJA1000的初始化,開放SJA1000的中斷,控制整個(gè)發(fā)酵過程,并主動(dòng)向監(jiān)控計(jì)算機(jī)傳送發(fā)酵罐的狀態(tài)信息。
對(duì)SJA1000的初始化主要是設(shè)置CAN的通信參數(shù),如設(shè)置模式寄存儲(chǔ)器等。本設(shè)計(jì)中數(shù)據(jù)發(fā)送是主動(dòng)的,因而對(duì)發(fā)送的處理比較簡(jiǎn)單,主程序采用查詢SJA1000的狀態(tài)標(biāo)識(shí)符的方法,只須把被發(fā)送的信息幀送到CAN的發(fā)送緩沖區(qū),并啟動(dòng)發(fā)送命令即可。為了保證系統(tǒng)的實(shí)時(shí)性,數(shù)據(jù)接收是通過SJA1000的中斷控制來實(shí)現(xiàn)的,在ISR中從接收緩沖區(qū)讀取要接收的信息,同時(shí)還要對(duì)出錯(cuò)和數(shù)據(jù)溢出中斷作相應(yīng)判斷處理。發(fā)送接收流程圖如圖3所示。本文引用地址:http://butianyuan.cn/article/163568.htm
智能通信適配器
USB-CAN設(shè)計(jì)
系統(tǒng)中為了實(shí)現(xiàn)上位監(jiān)控PC機(jī)與下位現(xiàn)場(chǎng)智能節(jié)點(diǎn)間通信,必須要有一通信適配器來實(shí)現(xiàn)CAN總線與PC總線之間的通信協(xié)議轉(zhuǎn)換功能。傳統(tǒng)的網(wǎng)絡(luò)適配器設(shè)計(jì)中與PC機(jī)的通信接口多為ISA總線、RS-232等,雖然它們實(shí)現(xiàn)較簡(jiǎn)單,可由于帶寬的限制,不能滿足高速傳輸?shù)男枰?而對(duì)于流行的PCI總線雖功能強(qiáng)大,可協(xié)議復(fù)雜,開發(fā)周期較長(zhǎng),不支持熱插拔且價(jià)格昂貴。USB總線具有安裝方便、高帶寬、可靠性高等特點(diǎn),因此本系統(tǒng)采用了自主開發(fā)的智能通信適配器USB-CAN來實(shí)現(xiàn)本系統(tǒng)CAN網(wǎng)絡(luò)與PC機(jī)間的通信。
智能適配器
USB-CAN硬件電路設(shè)計(jì)
適配器硬件電路由三部分組成:CAN總線接口部分、USB總線接口部分、CPU及電源管理部分。CAN總線接口部分的設(shè)計(jì)與智能節(jié)點(diǎn)CAN接口幾乎相同。CPU采用Philips公司的增強(qiáng)型MCS-51兼容單片機(jī)P89C51RD2,內(nèi)置看門狗,時(shí)鐘輸出可編程,在6時(shí)鐘模式下工作速度為標(biāo)準(zhǔn)C51單片機(jī)的兩倍。USB總線接口部分采用Philips公司的PDIUSBD12芯片,其符合USB1.1版本規(guī)范,可與任何外部微控制器/微處理器實(shí)現(xiàn)高速并行接口。硬件電路如圖4所示。
為了保證P89C51RD2、PDIUSBD12和SJA1000三者間時(shí)鐘同步,外接12MHz晶振的CPU運(yùn)行于6時(shí)鐘模式下,P1.0引腳通過編程輸出6MHz方波作為PDIUSBD12的輸入時(shí)鐘,再通過PDIUSBD12的設(shè)置模式寄存器編程使CLKOUT引腳產(chǎn)生24MHz的輸出時(shí)鐘來提供給SJA1000。PDIUSBD12的INT-N接CPU的端,通過中斷方式與CPU通信; SUSPEND引腳接CPU的P1.4端,用以向CPU指示器件是否掛起;D+引腳信號(hào)通過軟連接接1.5K的內(nèi)部上拉電阻,向主機(jī)表示為高速設(shè)備;為確定USB電纜是否與主機(jī)連接,采用EOT-N引腳檢測(cè)USB接口的VBUS電壓來實(shí)現(xiàn);由于采用多路地址/數(shù)據(jù)總線配置,故A0接高平;此外,D+和D-兩引腳各接18電阻,起到一定的限流作用,以保護(hù)PDIUSBD12免受過流的沖擊。
智能適配器
USB-CAN軟件設(shè)計(jì)
智能通信適配器USB-CAN的軟件即USB固件主要完成兩方面任務(wù):響應(yīng)來自主機(jī)的配置請(qǐng)求,完成對(duì)USB外設(shè)的列舉操作;負(fù)責(zé)接收主機(jī)的命令并發(fā)送給CAN總線上的節(jié)點(diǎn),以及接收各節(jié)點(diǎn)的數(shù)據(jù)并經(jīng)USB總線傳送給PC。
USB固件包括主程序、外部中斷0子程序和外部中斷1子程序。在主程序中主要完成SJA1000和PDIUSBD12的初始化操作并開放中斷;外部中斷0子程序處理CAN總線上事件,與智能節(jié)點(diǎn)對(duì)CAN總線的處理情況類似;外部中斷1子程序處理USB總線上的事件。
從整個(gè)監(jiān)控系統(tǒng)角度來看,軟件設(shè)計(jì)還包括USB設(shè)備的驅(qū)動(dòng)程序和應(yīng)用程序等,限于篇幅,在此不作闡述。
結(jié)語
具有獨(dú)特的設(shè)計(jì)思想、卓越的性能和極高的可靠性的CAN總線被公認(rèn)為是最有前途的現(xiàn)場(chǎng)總線之一?;贑AN總線的啤酒發(fā)酵監(jiān)控系統(tǒng)具有可維護(hù)性好、易于擴(kuò)充、可靠性高和成本低等特點(diǎn),非常適合當(dāng)今啤酒企業(yè)生產(chǎn)發(fā)展現(xiàn)況。
評(píng)論