日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

CAN總線(xiàn)分布式系統(tǒng)適配卡和控制單元設(shè)計(jì)

出處:RANQIGUO 發(fā)布于:2007-09-20 14:27:26

     摘要:介紹CAN總線(xiàn)分布式系統(tǒng)中適配卡和控制單元的硬件組成及軟件的設(shè)計(jì)方法,給出硬件原理圖;詳細(xì)分析SJA1000的初始化方法、驗(yàn)收濾波器的原理和使用方法、通信程序的設(shè)計(jì),并給出CAN通信中斷服務(wù)程序和初始化程序流程圖。
    關(guān)鍵詞:CAN總線(xiàn) 適配卡 控制單元 SJA1000 雙口RAM
    1 CAN總線(xiàn)分布式系統(tǒng)的結(jié)構(gòu)
       系統(tǒng)結(jié)構(gòu)如圖1所示。本系統(tǒng)由上位監(jiān)控計(jì)算機(jī)、CAN總線(xiàn)適配卡和控制單元三部分構(gòu)成。其中上位監(jiān)控計(jì)算機(jī)采用IBM-PC兼容機(jī),主要負(fù)責(zé)對(duì)系統(tǒng)數(shù)據(jù)的接收與管理、控制命令的發(fā)送以及各控制單元?jiǎng)討B(tài)參數(shù)和設(shè)備狀態(tài)實(shí)時(shí)顯示??刂茊卧?a target="_blank">單片機(jī)為,主要負(fù)責(zé)對(duì)現(xiàn)場(chǎng)環(huán)境參數(shù)和設(shè)備狀態(tài)進(jìn)行檢測(cè),對(duì)采集來(lái)的數(shù)據(jù)進(jìn)行處理,并對(duì)SJA1000進(jìn)行操作和控制。CAN總線(xiàn)適配卡,可使PC機(jī)方便地連接到CAN總線(xiàn)上。它內(nèi)嵌微處理器、CAN總線(xiàn)控制器、CAN總線(xiàn)收發(fā)器和雙口RAM。雙口RAM作為PC機(jī)與CAN總線(xiàn)適配卡的數(shù)據(jù)共享區(qū),通過(guò)設(shè)備將其映射成PC機(jī)的物理內(nèi)存,實(shí)現(xiàn)CAN與PC機(jī)的高速數(shù)據(jù)交換。CAN總線(xiàn)適配卡上帶有光電隔離,可增強(qiáng)系統(tǒng)在惡劣環(huán)境中的抗干擾能力??偩€(xiàn)兩端各有1個(gè)電阻R(約120Ω)起總線(xiàn)阻抗匹配作用。

2 CAN適配卡的設(shè)計(jì)
2.1 硬件設(shè)計(jì)

    CAN適配卡的硬件組成框圖如圖2所示,由ISA接口、雙口RAM、CPU、CAN通信控制器SJA1000、CAN總線(xiàn)接口82C250等組成。由于帶有片上CAN控制器的單片機(jī)都含較多的I/O線(xiàn)、定時(shí)/計(jì)數(shù)器、A/D等功能,往往較復(fù)雜,因此微處理器使用價(jià)廉的AT89C51單片機(jī)。為了進(jìn)一步提高抗干擾措施,在2個(gè)CAN器件之間使用了由高速隔離器件6N137構(gòu)成的隔離電路。光耦兩側(cè)應(yīng)采用DC-DC隔離電源。硬件電路中使用82C250的目的是為了增大通信距離。要實(shí)現(xiàn)PC機(jī)和CAN控制器之間的數(shù)據(jù)傳送,必須在PC機(jī)和適配卡上的MPU之間建立起雙向的數(shù)據(jù)交換通道。通過(guò)ISA總線(xiàn)實(shí)現(xiàn)單片機(jī)系統(tǒng)與主機(jī)之間的數(shù)據(jù)交換有多種實(shí)現(xiàn)方法。本適配卡采用集成雙口RAM實(shí)現(xiàn)數(shù)據(jù)交換。由于CAN信號(hào)傳輸采用短幀結(jié)構(gòu)(8字節(jié)數(shù)據(jù)),雙口RAM的容量要求并不大,本卡選用2K×8位的帶中斷請(qǐng)求信號(hào)INT和忙信號(hào)BUSY的IDT7132。具體的連接電路如圖3、圖4所示。上位PC機(jī)對(duì)雙口RAM的尋址方式采用I/O尋址方式,使用的控制線(xiàn)為IOW和IOR。為避免產(chǎn)生讀寫(xiě)錯(cuò)誤,使用雙口RAM的關(guān)鍵是處理好爭(zhēng)用現(xiàn)象。IDT7132提供了中斷判優(yōu)和硬件判優(yōu)兩種方式。當(dāng)兩端口爭(zhēng)用同一地址單元時(shí),由片內(nèi)硬件電路,根據(jù)兩邊的地址、片選、讀寫(xiě)信號(hào)到達(dá)先后順序,裁決哪個(gè)端口有使用權(quán)。如左端口優(yōu)先使用,則自動(dòng)將右端口的BUSYR信號(hào)拉為低電平,通知右側(cè)暫停讀寫(xiě)操作。在本適配卡中,由于8031沒(méi)有READY信號(hào),可以將此信號(hào)接至8031的P1.0上。當(dāng)8031發(fā)出讀寫(xiě)IDT7132命令時(shí),根據(jù)P1.0口的值就可判斷對(duì)IDT7132讀寫(xiě)是否存在沖突。當(dāng)P1.0的值為0時(shí),存在沖突,必須重發(fā)讀寫(xiě)IDT7132的命令。由于ISA總線(xiàn)既沒(méi)有READY信號(hào),也沒(méi)有通用的I/O引腳,因此將BUSYL信號(hào)通過(guò)三態(tài)門(mén)接至ISA數(shù)據(jù)線(xiàn)的位D0。用ISA總線(xiàn)的一個(gè)空閑I/O端口打開(kāi)三態(tài)門(mén),通過(guò)D0讀取BUSYL的狀態(tài)。

    SJA1000為CAN總線(xiàn)微控制器,是PHILIPS公司的PCA82C200的替代產(chǎn)品,可完成CAN總線(xiàn)的物理層和數(shù)據(jù)鏈路層的所有功能。SJA1000內(nèi)部RAM由寄存器組和報(bào)文緩沖區(qū)組成。發(fā)送緩沖區(qū)和接收緩沖區(qū)共用同一段CAN地址16H~18H,共3個(gè)單元,能存儲(chǔ)一條將在CAN總線(xiàn)上發(fā)送或接收的完整的報(bào)文。具有64字節(jié)擴(kuò)展接收緩沖器RXFIFO,其CAN地址為32H~95H(地址為96H~109H的區(qū)域是存放發(fā)送信息的備份),有了64字節(jié)的REFIFO,CPU可以在處理一個(gè)報(bào)文的同時(shí)繼續(xù)接收其他到來(lái)的報(bào)文;具有接收濾波器,它把報(bào)文頭中的標(biāo)識(shí)符(ID)和驗(yàn)收碼寄存器中的內(nèi)容進(jìn)行比較,以判斷該報(bào)文是否被接收。如果被接收,報(bào)文存入RXFIFO。CAN信息幀格式及單濾波方式的驗(yàn)收濾波器流程圖如圖5所示。

    格式信息內(nèi)容如下:
FF RTR X X DLC.3 DLC.2 DLC.1 DLC.0
      FF=1,本幀為標(biāo)準(zhǔn)幀;FF=0,本幀為擴(kuò)展幀。RTR=1,為遠(yuǎn)程幀;RTR=0,為數(shù)據(jù)幀。DLC.3~DLC.0表示數(shù)據(jù)字節(jié)的長(zhǎng)度,值為8。驗(yàn)收濾波原理:初始化時(shí)將標(biāo)識(shí)符ID寫(xiě)入驗(yàn)收碼寄存器ACR中,驗(yàn)收屏蔽寄存器AMR為0的位,ACR和CAN信息幀的對(duì)應(yīng)位必須相等才算驗(yàn)收通過(guò),AMR為1的位,CAN信息幀的對(duì)應(yīng)位不驗(yàn)收。驗(yàn)收時(shí)對(duì)于標(biāo)準(zhǔn)幀;11位標(biāo)識(shí)符和RTR對(duì)應(yīng)ACR0的8位和ACR1的高4位。對(duì)于擴(kuò)展幀:29位標(biāo)識(shí)符和RTR對(duì)應(yīng)4個(gè)ACR,只是ACR3和AMR3的低2位未用。MAX813組成硬件復(fù)位及看門(mén)狗電路。

    2.2 軟件設(shè)計(jì)
     適配卡主要承擔(dān)上位計(jì)算機(jī)和CAN節(jié)點(diǎn)之間的數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù),其軟件設(shè)計(jì)包括兩部分。一是PC機(jī)端的應(yīng)用程序接口(API)函數(shù),采用可視化的編程工具Builder C++編寫(xiě),主要包括按CAN報(bào)文格式向適配卡上雙口RAM寫(xiě)入控制命令、請(qǐng)求控制單元發(fā)送數(shù)據(jù)命令。在雙口RAM引起的中斷服務(wù)程序中,讀取雙口RAM中由AT89C51轉(zhuǎn)發(fā)的控制單元發(fā)送的數(shù)據(jù)并進(jìn)行處理。雙口RAM向PC機(jī)發(fā)出的中斷請(qǐng)求INTL,是由單片機(jī)將接收的數(shù)據(jù)寫(xiě)入雙口RAM后再寫(xiě)雙口RAM片內(nèi)地址為7FEH單元觸發(fā)的。二適配卡上單片機(jī)端的程序設(shè)計(jì),采用匯編發(fā)的。二是適配卡上單片機(jī)端的程序設(shè)計(jì),采用匯編語(yǔ)言編寫(xiě),分為主程序、INT0和INT1中斷服務(wù)程序。主程序主要完成對(duì)SJA1000的初始化。SJA1000的初始化是通過(guò)在復(fù)位期間對(duì)模式寄存器MOD(CAN地址為0,濾波和復(fù)位等方式選擇)、時(shí)鐘分配寄存器CDR(CAN地址為31H,選擇PeliCAN模式及時(shí)鐘輸出頻率)、濾波碼寄存器ACR0~ACR3(復(fù)位模式CAN地址為16H~18H,初始化時(shí)寫(xiě)入ID標(biāo)識(shí)符)、驗(yàn)收屏蔽寄存器AMR0~AMR3(復(fù)位模式CAN地址為20H~23H,初始化時(shí)設(shè)置是否屏蔽ACR相應(yīng)位)、總線(xiàn)定時(shí)寄存器BTR0(CAN地址為06H,設(shè)置波特率和同步跳轉(zhuǎn)寬度)和BTR1(CAN地址為07H,定義每個(gè)位周期長(zhǎng)度、采樣位置和每個(gè)采樣點(diǎn)的采樣數(shù)目)、輸出控制寄存器OCR(CAN地址為08H,選擇正常輸出控制模式)等寫(xiě)入控制字來(lái)確定其工作方式的。INT1中斷請(qǐng)求是由PC機(jī)將數(shù)據(jù)寫(xiě)入雙口RAM后再寫(xiě)雙口RAM片內(nèi)地址為7FFH單元觸發(fā)的。在INT12中斷服務(wù)程序中,首先讀取雙口RAM中的數(shù)據(jù),然后再將數(shù)據(jù)轉(zhuǎn)發(fā)給CAN控制器SJA1000,具體參見(jiàn)流程圖6。INT0中斷請(qǐng)求是由SJA1000發(fā)送或接收完1幀信息或接收數(shù)據(jù)超載或產(chǎn)生錯(cuò)誤中斷后產(chǎn)生的。INT0中斷服務(wù)程序流程如圖7所示。
3 控制單元設(shè)計(jì)
      控制單元的任務(wù)就是對(duì)現(xiàn)場(chǎng)環(huán)境參數(shù)進(jìn)行采集并從CAN總線(xiàn)上接收上位機(jī)的命令。根據(jù)上位機(jī)的要求,對(duì)設(shè)備進(jìn)行控制或?qū)⒉杉臄?shù)據(jù)通過(guò)CAN總線(xiàn)傳給上位機(jī)?,F(xiàn)以溫室控制單元為例說(shuō)明控制單元設(shè)計(jì)方法。溫室控制單元的結(jié)構(gòu)原理如圖8所示。以AT89C52為,采用2片8255擴(kuò)展I/O端口,其中2個(gè)PA口和1個(gè)PB口用來(lái)檢測(cè)天窗、遮陽(yáng)傘、補(bǔ)光燈、通風(fēng)機(jī)等21路開(kāi)關(guān)量的狀態(tài)。由于8255的PC口的各位通過(guò)置復(fù)位控制字可以單獨(dú)置位或復(fù)位,AT89C52的P1口可以按位尋址,所以用8255的2個(gè)PC口和AP89C52的P1口來(lái)控制繼電器的吸合。3片8位A/D轉(zhuǎn)換器ADC0809實(shí)現(xiàn)對(duì)溫度、濕度、pH值、CO2濃度、光照強(qiáng)度、液位等20路模擬量的數(shù)據(jù)采集。

    控制單元的控制軟件采用匯編語(yǔ)言編程,主要包括初始化、數(shù)據(jù)采集、數(shù)據(jù)通信、I/O接口控制等功能。初始化包括對(duì)8255和SJA1000的初始化,使8255的PA、PB口作為輸入口,PC口各位通過(guò)置復(fù)位控制字可以單獨(dú)置位或復(fù)位,從而開(kāi)啟或停止一個(gè)繼電器的動(dòng)作。數(shù)據(jù)采集采用查詢(xún)方式工作,每一路模擬量連續(xù)采集3次,中值濾波后作為該傳感器的數(shù)據(jù)存入相應(yīng)的內(nèi)部RAM中,全部數(shù)據(jù)采集完后再檢測(cè)開(kāi)關(guān)狀態(tài)并存入相應(yīng)RAM中。隨后開(kāi)CPU中斷,進(jìn)入數(shù)據(jù)循環(huán)采集狀態(tài),等待CAN通信中斷的產(chǎn)生。本系統(tǒng)采用中斷方式實(shí)現(xiàn)AT89C52與SJA1000之間的通信。

    需要說(shuō)明的是,CAN2.0A或CAN 2.0B協(xié)議只是一個(gè)低層的規(guī)范,用戶(hù)還需要定制簡(jiǎn)單的應(yīng)用層協(xié)議。應(yīng)用層協(xié)議的任務(wù)一方面是將要發(fā)送的數(shù)據(jù)分類(lèi)、拆卸、合并,確定發(fā)送對(duì)象,再根據(jù)CAN的數(shù)據(jù)鏈路層協(xié)議規(guī)范填寫(xiě)CAN的各個(gè)信息幀;另一方面是根據(jù)應(yīng)用層協(xié)議解釋接收數(shù)據(jù)的具體含義,并進(jìn)行相應(yīng)的處理。

  
關(guān)鍵詞:CAN總線(xiàn)分布式系統(tǒng)適配卡和控制單元設(shè)計(jì)AT89C52MAX813PHILIPS

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類(lèi)作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

AT89C52單片機(jī)蜂鳴器演奏茉莉花音樂(lè)作品
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線(xiàn)人工客服

買(mǎi)家服務(wù):
賣(mài)家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線(xiàn)時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!