基于CAN的大客飛機(jī)航電系統(tǒng)局域網(wǎng)通信設(shè)計(jì)
2.2 通信控制部分
CAN總線通信控制部分如圖4所示,主要由CAN總線控制器SJA1000、單片機(jī)AT89S52和雙口RAMIDT7006組成,負(fù)責(zé)整個(gè)CAN總線通信控制以及和PCI局部總線的互連。雙口RAM作為CAN總線和PCI局部總線交換數(shù)據(jù)時(shí)的一個(gè)緩沖存儲(chǔ)區(qū)。單片機(jī)AT89S52是該通信卡通信控制的核心,它負(fù)責(zé)與雙口RAM以及CAN控制器SJA1000之間的通信。本文引用地址:http://2s4d.com/article/154762.htm
將雙口RAM的INTR和單片機(jī)的外部中斷引腳INT1相連,當(dāng)PCI9052向雙口RAM傳輸完數(shù)據(jù)后,觸發(fā)雙口RAM中斷引腳INTR,進(jìn)而觸發(fā)單片機(jī)中斷,單片機(jī)執(zhí)行中斷服務(wù)程序,讀取雙口RAM中的數(shù)據(jù)。為了使SJA1000和AT89S52時(shí)鐘同步,將SJA1000的CLKOUT引腳接至AT89S52的時(shí)鐘輸入端,作為AT89S52的外部時(shí)鐘輸入。SJA1000接收到新的數(shù)據(jù)后,給出中斷信號(hào)INT,通過(guò)觸發(fā)中斷信號(hào)INT0讓單片機(jī)實(shí)時(shí)處理這些數(shù)據(jù),單片機(jī)把這些數(shù)據(jù)處理完成后,寫(xiě)入雙口RAM指定的存儲(chǔ)單元后,再向雙口RAM的1FFEH單元寫(xiě)入任意數(shù)據(jù),即可觸發(fā)雙口RAM左端中斷,使計(jì)算機(jī)接收數(shù)據(jù)。由于SJA1000的地址數(shù)據(jù)復(fù)用,AD0~AD7可直接將其接到單片機(jī)的P0口。雙口RAM地址和數(shù)據(jù)是分開(kāi)的,通過(guò)74LS373和單片機(jī)P1口相連。
2.3 PCI總線接口部分
CAN總線通信卡PCI總線接口連接如圖5所示。
PCI總線接口電路主要是PCI總線和雙口RAM的連接電路。雙口RAM是PCI總線和CAN總線數(shù)據(jù)傳輸?shù)闹修D(zhuǎn)站,由于CAN總線相對(duì)于PCI總線而言傳輸速度較慢,為了充分利用PCI通道的高速特性,一般要將單片機(jī)處理后的CAN總線數(shù)據(jù)暫時(shí)緩存在外部存儲(chǔ)器中,當(dāng)存儲(chǔ)器寫(xiě)滿時(shí)再利用PCI總線的突發(fā)、快速的特性,將存儲(chǔ)器數(shù)據(jù)一次性讀出。這樣,既充分利用了PCI接口的高性能,CPU又能空出時(shí)間來(lái)進(jìn)行數(shù)據(jù)處理和顯示等其他操作,從而增強(qiáng)數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性。
PCI9052本質(zhì)上是一個(gè)橋設(shè)備,它把PCI總線對(duì)某一段PCI總線地址空間的各種操作(包括讀、寫(xiě)等)轉(zhuǎn)換為相應(yīng)的局部總線上的操作。把數(shù)據(jù)寫(xiě)入E2PROM完成后,當(dāng)板卡上電,PCI9052從E2PROM中讀取數(shù)據(jù)并寫(xiě)入PCI9052中的PCI寄存器和局部配置寄存器中。PC機(jī)(PCI主控設(shè)備)通過(guò)讀這些寄存器,得知系統(tǒng)中有多少存儲(chǔ)器以及I/O控制器要求分配相應(yīng)的地址空間,將相應(yīng)的基地址寫(xiě)入PCI基址寄存器中。假設(shè)本設(shè)計(jì)中計(jì)算機(jī)給PCI9052分配的基地址為0x8400,由局部配置寄存器的值可知,本設(shè)計(jì)采用的是I/O映射,且空間大小為FFH,則計(jì)算機(jī)對(duì)I/O空間0x8400H~0x84FFH的訪問(wèn),就會(huì)通過(guò)PCI9052映射到局部空間0x00H~0xFFH。
3 仿真系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)是在Windows XP環(huán)境下,用VisualC++6.0開(kāi)發(fā),采用面向?qū)ο蟮脑O(shè)計(jì)方法。軟件主要包括主模塊、初始化模塊、控制模塊、數(shù)據(jù)管理模塊、通信模塊、顯示模塊和通信接口驅(qū)動(dòng)軟件等。軟件可以通過(guò)友好界面為用戶提供通過(guò)CAN總線進(jìn)行通信的雙方的設(shè)備號(hào)、端口號(hào)、波特率、數(shù)據(jù)等,可以初始化芯片,可以進(jìn)行復(fù)位操作,可以設(shè)置波特率。向用戶展示CAN總線的通信過(guò)程和結(jié)果,體現(xiàn)CAN線協(xié)議的功能。軟件流程圖如圖6所示。
評(píng)論