新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于P87C591的CAN總線信號采集節(jié)點(diǎn)的設(shè)計(jì)

基于P87C591的CAN總線信號采集節(jié)點(diǎn)的設(shè)計(jì)

作者: 時(shí)間:2011-08-23 來源:網(wǎng)絡(luò) 收藏

  介紹了單片機(jī)的特點(diǎn),給出了基于單片機(jī)的的軟、硬件設(shè)計(jì),指出了硬件電路設(shè)計(jì)中應(yīng)注意的問題,在軟件設(shè)計(jì)中重點(diǎn)介紹了節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收等子程序。

  1 引言

  在工程機(jī)械液壓系統(tǒng)狀態(tài)監(jiān)測與故障診斷中,傳感器信號的調(diào)理、采集和信號的特征提取,以及把采集的數(shù)據(jù)發(fā)送給主機(jī)(中心處理單元)要由信號采集單元實(shí)現(xiàn)。本文介紹了基于系統(tǒng)的設(shè)計(jì)。

  CAN是1986年2月在SAE (汽車工程人員協(xié)會)大會上, 由Rober Bosch公司提出的新總線系統(tǒng),稱之為“汽車串行控制局域網(wǎng)”(Automotive Se.rial Controller Area Network),它是最主要的總線協(xié)議之一。由于采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),使得它與一般的通信總線相比具有突出的可靠性、實(shí)時(shí)性和靈活性,從而使其應(yīng)用范圍不斷擴(kuò)展。目前,CAN已經(jīng)形成國際標(biāo)準(zhǔn),并被公認(rèn)為是最有前途的現(xiàn)場總線之一。

  P87C591是Philips半導(dǎo)體公司推出的單片8位高性能微控制器,具有片內(nèi)CAN控制器,是從80C51微控制器家族派生而來。它采用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)收濾波器可動態(tài)變化

  2 硬件電路設(shè)計(jì)

  2.1 硬件電路設(shè)計(jì)

  信號采集節(jié)點(diǎn)直接固定在工程機(jī)械液壓系統(tǒng)的主要測點(diǎn)上,主要由MCU、信號調(diào)理、A/D轉(zhuǎn)換、數(shù)字量輸入模塊、存儲器和CAN總線接口組成。信號采集節(jié)點(diǎn)選擇具有片內(nèi)CAN控制器的高性能8位單片機(jī)P87C591作為處理器,可以完成基本的模擬量和數(shù)字量的采集及CAN總線通訊。該采集模塊有8路模擬輸入和4路光電耦合數(shù)字(開關(guān))量輸入,模擬輸入前3路是專為ICP振動傳感器設(shè)計(jì),其余5路均可通過跳線選擇0 V~5 V電壓輸入或4mA~20 mA電流環(huán)輸入.以適應(yīng)不同類型傳感器的需要。圖1為信號采集節(jié)點(diǎn)硬件結(jié)構(gòu)示意圖。

  

基于P87C591的CAN總線信號采集節(jié)點(diǎn)的設(shè)計(jì)

  圖1 信號采集節(jié)點(diǎn)硬件結(jié)構(gòu)。

  信號采集單元與主機(jī)(中心處理單元)之間通過四芯電纜連接,其中兩芯為CAN總線信號線(CANH和CANL).另外兩芯為電源線,可為信號采集單元各部分提供電源。

  2.2 電路設(shè)計(jì)需要注意的問題

  TJA1050是高速CAN收發(fā)器.是控制器區(qū)域網(wǎng)絡(luò)(CAN)協(xié)議控制器與物理總線之間的接口。

  TJA1050可以為總線提供不同的發(fā)送性能,為CAN控制器提供不同的接收性能O TJA1050可以選擇兩種工作模式:高速模式和靜音模式。高速模式是普通的工作模式,將引腳8接地可以進(jìn)入高速模式,如果引腳8沒有連接.高速模式則為默認(rèn)的工作模式。將引腳8連接到Vcc可以進(jìn)入靜音模式,靜音模式可以防止在CAN控制器不受控制時(shí)對網(wǎng)絡(luò)通訊造成堵塞,在靜音模式中,發(fā)送器是禁止的,但是器件的其他功能可以繼續(xù)使用。

  總線的兩端要連接兩個(gè)120 n 的電阻,對匹配總線阻抗起著重要的作用。如果忽略掉它們,會使數(shù)據(jù)通信的抗干擾性及可靠性大大降低,甚至無法通信。

  3 信號采集節(jié)點(diǎn)軟件設(shè)計(jì)

  信號采集節(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í)器用來設(shè)置CAN總線上數(shù)據(jù)傳輸?shù)牟ㄌ芈?,注意總線上各節(jié)點(diǎn)的波特率須一致,否則將導(dǎo)致數(shù)據(jù)傳輸錯(cuò)誤。信號采集節(jié)點(diǎn)初始化流程如圖2所示。

  

  圖2 初始化流程圖。

  3.2 報(bào)文發(fā)送

  數(shù)據(jù)的發(fā)送由CAN控制器根據(jù)CAN協(xié)議規(guī)范自動完成。CPU將要發(fā)送的數(shù)據(jù)傳送到發(fā)送緩沖區(qū)并置位命令寄存器的TR(發(fā)送請求)位,發(fā)送處理可以通過中斷請求或查詢狀態(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(空),則沒有接收數(shù)據(jù);如果RBS指示1(滿),則R)(nFo中有一個(gè)或多個(gè)完整的可用信息。報(bào)文接收流程如圖4所示。

  

  圖4 報(bào)文接收溉程圖

  其他子程序的設(shè)計(jì)這里不再介紹。

  4 結(jié)束語

  CAN以其獨(dú)特的設(shè)計(jì)思想、良好的性能、極高的可靠性受到了業(yè)界青睞;具有片上CAN控制器的P87C591具有功能強(qiáng)大、設(shè)計(jì)方便等特性??蓮V泛應(yīng) 用于工業(yè)領(lǐng)域?;赑87C591的信號采集節(jié)點(diǎn)充分利用了CAN以及P87C591的優(yōu)良特性,很好地實(shí) 現(xiàn)了數(shù)據(jù)采集功能。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉