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