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