《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 兩種采用CAN總線進(jìn)行通信的系統(tǒng)比較
兩種采用CAN總線進(jìn)行通信的系統(tǒng)比較
摘要: 獨(dú)立的can控制器芯片需要外接一個(gè)處理器,接受外部cpu的控制才能運(yùn)行。如果處理器內(nèi)帶有can控制器,那么無疑會(huì)大大簡化應(yīng)用系統(tǒng)的硬件設(shè)計(jì),系統(tǒng)的可靠性也會(huì)有很大的提高。所以出現(xiàn)了很多帶有can控制器的處理器,philips公司的p8xc591單片機(jī)就是其中的一種,它完全履行can2.0b規(guī)范,并提供一個(gè)直接從sja1000獨(dú)立can控制器的軟件移植路徑。
Abstract:
Key words :
</a>can" title="can">can" title="can">can" title="can">can總線是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò),它可實(shí)現(xiàn)全分布式多機(jī)系統(tǒng),且無主、從之分;具有傳輸速度快、自動(dòng)解決總線競爭、實(shí)時(shí)性好、可靠性高、糾錯(cuò)能力強(qiáng)等特點(diǎn),目前已成為一種國際總線標(biāo)準(zhǔn)。
           
  由于can總線具有諸多優(yōu)點(diǎn),它的應(yīng)用范圍遍及從高速網(wǎng)絡(luò)到低成本的多線路網(wǎng)絡(luò)。在自動(dòng)化電子領(lǐng)域的汽車發(fā)動(dòng)機(jī)控制部件、傳感器、抗滑系統(tǒng)、工業(yè)自動(dòng)化、建筑物環(huán)境控制、機(jī)床、電梯控制、醫(yī)療設(shè)備等領(lǐng)域得到了較為廣泛的應(yīng)用。
           
  sja1000是一種獨(dú)立的can控制器" title="控制器">控制器,主要用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制。它是philips半導(dǎo)體公司pca82c200can控制器(basiccan)的替代產(chǎn)品,而且它增加了一種新的操作模式——pelican,這種模式支持具有很多新特性的can2.0b協(xié)議。sja1000的基本特性以及電氣參數(shù)均與pca82c200獨(dú)立can控制器兼容,具有pca82c200模式(即默認(rèn)的basiccan模式),有擴(kuò)展的接收緩沖器64字節(jié),先進(jìn)先出(fifo),支持can2.0a和can2.0b協(xié)議,支持11位和29位標(biāo)識(shí)碼,通信位速率可達(dá)1mbps。
           
  獨(dú)立的can控制器芯片需要外接一個(gè)處理器,接受外部cpu的控制才能運(yùn)行。如果處理器內(nèi)帶有can控制器,那么無疑會(huì)大大簡化應(yīng)用系統(tǒng)的硬件設(shè)計(jì),系統(tǒng)的可靠性也會(huì)有很大的提高。所以出現(xiàn)了很多帶有can控制器的處理器,philips公司的p8xc591單片機(jī)就是其中的一種,它完全履行can2.0b規(guī)范,并提供一個(gè)直接從sja1000獨(dú)立can控制器的軟件移植路徑。
            
2  兩種通信方式介紹
           
  2.1 獨(dú)立的can控制器sja1000通信方式
           
  sja1000是一種獨(dú)立的can控制器,主要用于移動(dòng)目標(biāo)和一般工業(yè)環(huán)境中的區(qū)域網(wǎng)絡(luò)控制。它是philips公司pca82c200can控制器(basiccan)的替代產(chǎn)品,它在完全兼容pca82c200的基礎(chǔ)上,增加了一種新的工作模式pelican,sja1000完全支持具有很多新特性的can2.0b協(xié)議。sja1000的工作模式通過其內(nèi)部的時(shí)鐘分頻寄存器(cdr)中的can模式位來選擇,硬件復(fù)位時(shí)默認(rèn)模式是basiccan工作模式[1]。
           
  sja1000可以支持多種微處理器的時(shí)序特性,如intel模式或motorola模式。sja1000與微處理器的接口非常簡單,微處理器以訪問外部存儲(chǔ)器的方式來訪問sja1000,在設(shè)計(jì)接口電路時(shí),sja1000的片選地址應(yīng)與其他外部存儲(chǔ)器的片選地址在邏輯上無沖突。
           
  sja1000有2種模式可以供微處理器訪問其內(nèi)部寄存器,2種模式下的訪問是有區(qū)別的,這2種模式分別是復(fù)位模式和工作模式,當(dāng)硬件復(fù)位、控制器掉線、置位請求位時(shí),sja1000進(jìn)入復(fù)位模式。當(dāng)清楚其內(nèi)部控制寄存器(cr)中的復(fù)位請求位時(shí),sja1000進(jìn)入工作模式,有些內(nèi)部的寄存器只能在復(fù)位模式下訪問,有些寄存器只能在工作模式下訪問,而有些寄存器在這2種模式下都可以訪問。
           
  2.2 philips單片機(jī)p8xc591的通信方式
          
  philips半導(dǎo)體公司的p8xc591是一個(gè)用先進(jìn)的coms工藝制造的高性能8位單片機(jī),具有片內(nèi)can控制器。它從mcs-51微控制器家族派生而來,采用了強(qiáng)大的80c51指令集,并成功的包括了philips半導(dǎo)體sja1000,can控制器的pelican功能,提供了專用的硬件,其方框圖如圖1所示。全靜態(tài)內(nèi)核提供了擴(kuò)展的節(jié)電方式。振蕩器可停止和恢復(fù)而不會(huì)丟失數(shù)據(jù)。改進(jìn)的1:1內(nèi)部時(shí)鐘分頻器在12mhz外部時(shí)鐘速率時(shí)實(shí)現(xiàn)500ns指令周期[1]。

            圖1   p8xc591的方框圖 
 

           
  p8xc591是一個(gè)高性能的微控制器,其專注的硬件結(jié)構(gòu)及增強(qiáng)型的philips“rx+內(nèi)核”使得其可以廣泛用于工業(yè)控制和汽車領(lǐng)域。片上自帶的can控制器為can的應(yīng)用提供許多專用的硬件功能。p8xc591完全履行can2.0b規(guī)范并提供一個(gè)直接從sja1000獨(dú)立can控制器的軟件移植路徑。p8xc591具有can的擴(kuò)充特性,其中包括增強(qiáng)型接收濾波器、支持系統(tǒng)維護(hù)、診斷、系統(tǒng)優(yōu)化以及接收fifo特性等,使得p8xc591具有非常廣泛的應(yīng)用領(lǐng)域。
           
  p8xc591包含的嵌入式can控制器具有下列功能模塊:can內(nèi)核模塊,根據(jù)can2.0b規(guī)范控制can幀的發(fā)送和接收;can接口模塊,包含了5個(gè)實(shí)現(xiàn)cpu與can控制器連接的特殊功能寄存器,對重要can寄存器的訪問通過快速自動(dòng)增加的尋址特性和對特殊功能寄存器的位尋址來實(shí)現(xiàn);can控制器的發(fā)送緩沖區(qū)模塊,能夠保存一個(gè)完整的can信息擴(kuò)展或標(biāo)準(zhǔn)幀格式,只要通過cpu啟動(dòng)發(fā)送信息,字節(jié)就從發(fā)送緩沖區(qū)傳輸?shù)絚an內(nèi)核模塊,當(dāng)接收一個(gè)信息時(shí),can內(nèi)核模塊將串行位流轉(zhuǎn)換成并行數(shù)據(jù)輸入到接收濾波器,通過該可編程濾波器,p8xc591確定實(shí)際接收到的信息,所有由接收濾波器接收的數(shù)據(jù)都保存在接收fifo(64字節(jié))中,取決于操作模式和數(shù)據(jù)長度的不同該接收緩沖區(qū)最多可保存21個(gè)can信息。這使用戶在指定系統(tǒng)的中斷服務(wù)和中斷優(yōu)先級(jí)時(shí)有更多的靈活性,因?yàn)閿?shù)據(jù)溢出的可能性大大降低。
           
  除了普通的can特性以外,p8xc-591還提供增強(qiáng)型pelican。pelican具有4個(gè)獨(dú)立可配置的接收濾波器組,每個(gè)組都有4個(gè)可選的接收濾波器配置;每個(gè)接收濾波器都有32位區(qū)分符、32位代碼和32位屏蔽;所有濾波器配置都可在運(yùn)行中改變;支持更高層協(xié)議的接收濾波器;接收fifo特性;只聽模式及自檢測模式;只有達(dá)到fifo接收中斷級(jí)才能產(chǎn)生接收中斷;在接收到高優(yōu)先級(jí)數(shù)據(jù)幀時(shí)立即產(chǎn)生接收中斷;支持系統(tǒng)維護(hù)、診斷和優(yōu)化等特性[2]。
            
3  兩種通信方式比較
           
  當(dāng)獨(dú)立的can控制器進(jìn)行數(shù)據(jù)的接收和發(fā)送時(shí),在設(shè)計(jì)微處理器與sja1000的接口電路時(shí),首先要選擇微處理器和sja1000的接口模式,其次要注意sja1000的片選地址應(yīng)與其他的外部存儲(chǔ)器無沖突,還應(yīng)注意sja1000的復(fù)位電路應(yīng)為低電平有效等一些問題,其硬件電路的設(shè)計(jì)相對來說是非常復(fù)雜的。如果有一點(diǎn)問題沒有注意到,就有可能造成數(shù)據(jù)無法發(fā)送和接收。
           
  sja1000內(nèi)部寄存器分布于0~31連續(xù)的地址空間中,包括控制段和信息緩沖區(qū)??刂贫卧诔跏蓟d入時(shí)可被編程來配置通訊參數(shù)(例如:波特率、位時(shí)序等)。微控制器也是通過這個(gè)段來控制can總線上的通訊狀態(tài)。信息緩沖區(qū)分為發(fā)送緩沖區(qū)和接收緩沖區(qū)。微處理器將要發(fā)送的信息寫入發(fā)送緩沖區(qū),然后啟動(dòng)發(fā)送命令后,可進(jìn)行報(bào)文的發(fā)送。符合接收條件的接收到的信息放入接收緩沖區(qū),微處理器可以讀出這些信息,并進(jìn)行處理。
           
  硬件電路的設(shè)計(jì)如果采用了philips公司的自帶can控制器的單片機(jī)p8xc591,就不會(huì)存在以上的問題。由于p8xc591含有片上的can控制器,透過txdc、rxdc兩個(gè)管腳,p8xc591就可以直接和外部的can節(jié)點(diǎn)交換數(shù)據(jù)。p8xc591自帶的can控制器在軟件上是向上兼容sja1000的。p8xc591所連接的can節(jié)點(diǎn)電路所需要的外部元件僅僅是一個(gè)晶振加兩個(gè)電容驅(qū)動(dòng)片內(nèi)振蕩器、一個(gè)連接到復(fù)位腳的電阻、電容。使用片內(nèi)上電復(fù)位電路以及一個(gè)收發(fā)器pca82c250用于將p8xc591連接到can總線。所以我們能夠很方便的使用,而且不必考慮很多外部電路的連接,使我們能夠避免很多容易出現(xiàn)的錯(cuò)誤。
           
  p8xc591通過對can的特殊功能寄存器如地址寄存器(canadr)、數(shù)據(jù)寄存器(candat)、模式寄存器(canmod)、控制寄存器(cancon)、狀態(tài)寄存器(cansta)、總線定時(shí)寄存器(btr0,btr1)等的設(shè)置以及對收發(fā)緩沖區(qū)的讀寫,從而完成和其它c(diǎn)an節(jié)點(diǎn)的數(shù)據(jù)交換。
            
4  結(jié)束語
           
  通過本文的介紹,我們對獨(dú)立can控制器sja1000和philips公司的p8xc591單片機(jī)有了進(jìn)一步的了解,通過后者,我們可以把硬件電路連接兩個(gè)處理器所完成的任務(wù),簡化為只用一個(gè)微控制器就可以完成。這樣大大簡化了電路的硬件連接,而且也提高了系統(tǒng)的可靠性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。