基于P87C591的CAN總線信號(hào)采集節(jié)點(diǎn)的設(shè)計(jì)
介紹了CAN總線和P87C591單片機(jī)的特點(diǎn),給出了基于P87C591單片機(jī)的信號(hào)采集節(jié)點(diǎn)的軟、硬件設(shè)計(jì),指出了硬件電路設(shè)計(jì)中應(yīng)注意的問(wèn)題,在軟件設(shè)計(jì)中重點(diǎn)介紹了節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收等子程序。
1 引言
在工程機(jī)械液壓系統(tǒng)狀態(tài)監(jiān)測(cè)與故障診斷中,傳感器信號(hào)的調(diào)理、采集和信號(hào)的特征提取,以及把采集的數(shù)據(jù)發(fā)送給主機(jī)(中心處理單元)要由信號(hào)采集單元實(shí)現(xiàn)。本文介紹了基于P87C591的CAN總線系統(tǒng)信號(hào)采集節(jié)點(diǎn)的設(shè)計(jì)。
CAN是1986年2月在SAE (汽車工程人員協(xié)會(huì))大會(huì)上, 由Rober Bosch公司提出的新總線系統(tǒng),稱之為“汽車串行控制局域網(wǎng)”(Automotive Se.rial Controller Area Network),它是最主要的總線協(xié)議之一。由于CAN總線采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),使得它與一般的通信總線相比具有突出的可靠性、實(shí)時(shí)性和靈活性,從而使其應(yīng)用范圍不斷擴(kuò)展。目前,CAN已經(jīng)形成國(guó)際標(biāo)準(zhǔn),并被公認(rèn)為是最有前途的現(xiàn)場(chǎng)總線之一。
P87C591是Philips半導(dǎo)體公司推出的單片8位高性能微控制器,具有片內(nèi)CAN控制器,是從80C51微控制器家族派生而來(lái)。它采用80C51指令集并包括了Philips公司SJA1000 CAN控制器的PeliCAN功能。P87C591微控制器采用先進(jìn)的CMOS工藝,設(shè)計(jì)用于汽車和通用的工業(yè)應(yīng)用。 P87C591組合了P87C554 (微控制器)和SJAIO00(獨(dú)立的CAN控制器)的功能,還具有以下增強(qiáng)型特性:
增強(qiáng)的CAN接收中斷
擴(kuò)展的驗(yàn)收濾波器
驗(yàn)收濾波器可動(dòng)態(tài)變化
2 信號(hào)采集節(jié)點(diǎn)硬件電路設(shè)計(jì)
2.1 硬件電路設(shè)計(jì)
信號(hào)采集節(jié)點(diǎn)直接固定在工程機(jī)械液壓系統(tǒng)的主要測(cè)點(diǎn)上,主要由MCU、信號(hào)調(diào)理、A/D轉(zhuǎn)換、數(shù)字量輸入模塊、存儲(chǔ)器和CAN總線接口組成。信號(hào)采集節(jié)點(diǎn)選擇具有片內(nèi)CAN控制器的高性能8位單片機(jī)P87C591作為處理器,可以完成基本的模擬量和數(shù)字量的采集及CAN總線通訊。該采集模塊有8路模擬輸入和4路光電耦合數(shù)字(開關(guān))量輸入,模擬輸入前3路是專為ICP振動(dòng)傳感器設(shè)計(jì),其余5路均可通過(guò)跳線選擇0 V~5 V電壓輸入或4mA~20 mA電流環(huán)輸入.以適應(yīng)不同類型傳感器的需要。圖1為信號(hào)采集節(jié)點(diǎn)硬件結(jié)構(gòu)示意圖。
圖1 信號(hào)采集節(jié)點(diǎn)硬件結(jié)構(gòu)。
信號(hào)采集單元與主機(jī)(中心處理單元)之間通過(guò)四芯電纜連接,其中兩芯為CAN總線信號(hào)線(CANH和CANL).另外兩芯為電源線,可為信號(hào)采集單元各部分提供電源。
2.2 電路設(shè)計(jì)需要注意的問(wèn)題
TJA1050是高速CAN收發(fā)器.是控制器區(qū)域網(wǎng)絡(luò)(CAN)協(xié)議控制器與物理總線之間的接口。
TJA1050可以為總線提供不同的發(fā)送性能,為CAN控制器提供不同的接收性能O TJA1050可以選擇兩種工作模式:高速模式和靜音模式。高速模式是普通的工作模式,將引腳8接地可以進(jìn)入高速模式,如果引腳8沒(méi)有連接.高速模式則為默認(rèn)的工作模式。將引腳8連接到Vcc可以進(jìn)入靜音模式,靜音模式可以防止在CAN控制器不受控制時(shí)對(duì)網(wǎng)絡(luò)通訊造成堵塞,在靜音模式中,發(fā)送器是禁止的,但是器件的其他功能可以繼續(xù)使用。
總線的兩端要連接兩個(gè)120 n 的電阻,對(duì)匹配總線阻抗起著重要的作用。如果忽略掉它們,會(huì)使數(shù)據(jù)通信的抗干擾性及可靠性大大降低,甚至無(wú)法通信。
3 信號(hào)采集節(jié)點(diǎn)軟件設(shè)計(jì)
信號(hào)采集節(jié)點(diǎn)的軟件設(shè)計(jì)主要有:節(jié)點(diǎn)初始化、報(bào)文發(fā)送、報(bào)文接收、CAN總線錯(cuò)誤處理、CAN總線中斷處理等。本文重點(diǎn)介紹節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收。
3.1 節(jié)點(diǎn)初始化
在上電或硬件復(fù)位后,CAN控制器處于復(fù)位模式。如果CAN控制器不處于復(fù)位模式,置位模式寄存器RM位使其進(jìn)入復(fù)位模式。CAN控制器復(fù)位后,必須初始化實(shí)現(xiàn)CAN通信,其內(nèi)容主要有:操作模式、驗(yàn)收濾波器、總線定時(shí)及中斷等。其中,定時(shí)器用來(lái)設(shè)置CAN總線上數(shù)據(jù)傳輸?shù)牟ㄌ芈?,注意總線上各節(jié)點(diǎn)的波特率須一致,否則將導(dǎo)致數(shù)據(jù)傳輸錯(cuò)誤。信號(hào)采集節(jié)點(diǎn)初始化流程如圖2所示。
圖2 初始化流程圖。
3.2 報(bào)文發(fā)送
數(shù)據(jù)的發(fā)送由CAN控制器根據(jù)CAN協(xié)議規(guī)范自動(dòng)完成。CPU將要發(fā)送的數(shù)據(jù)傳送到發(fā)送緩沖區(qū)并置位命令寄存器的TR(發(fā)送請(qǐng)求)位,發(fā)送處理可以通過(guò)中斷請(qǐng)求或查詢狀態(tài)標(biāo)志進(jìn)行控制。報(bào)文發(fā)送流程如圖3所示。
圖3 報(bào)文發(fā)送流程圖。
3.3 報(bào)文接收
CPU以一定周期讀取CAN控制器的狀態(tài)寄存器,檢查RBS(接收緩沖器狀態(tài))。如果RBS指示0(空),則沒(méi)有接收數(shù)據(jù);如果RBS指示1(滿),則R)(nFo中有一個(gè)或多個(gè)完整的可用信息。報(bào)文接收流程如圖4所示。
圖4 報(bào)文接收溉程圖
其他子程序的設(shè)計(jì)這里不再介紹。
4 結(jié)束語(yǔ)
CAN以其獨(dú)特的設(shè)計(jì)思想、良好的性能、極高的可靠性受到了業(yè)界青睞;具有片上CAN控制器的P87C591具有功能強(qiáng)大、設(shè)計(jì)方便等特性??蓮V泛應(yīng) 用于工業(yè)領(lǐng)域?;赑87C591的信號(hào)采集節(jié)點(diǎn)充分利用了CAN以及P87C591的優(yōu)良特性,很好地實(shí) 現(xiàn)了數(shù)據(jù)采集功能。
評(píng)論