CAN總線(xiàn)分布式系統適配卡和控制單元設計
1 CAN總線(xiàn)分布式系統的結構
系統結構如圖1所示。本系統由上位監控計算機、CAN總線(xiàn)適配卡和控制單元三部分構成。其中上位監控計算機采用IBM-PC兼容機,主要負責對系統數據的接收與管理、控制命令的發(fā)送以及各控制單元動(dòng)態(tài)參數和設備狀態(tài)實(shí)時(shí)顯示。控制單元以單片機為核心,主要負責對現場(chǎng)環(huán)境參數和設備狀態(tài)進(jìn)行檢測,對采集來(lái)的數據進(jìn)行處理,并對SJA1000進(jìn)行操作和控制。CAN總線(xiàn)適配卡,可使PC機方便地連接到CAN總線(xiàn)上。它內嵌微處理器、CAN總線(xiàn)控制器、CAN總線(xiàn)收發(fā)器和雙口RAM。雙口RAM作為PC機與CAN總線(xiàn)適配卡的數據共享區,通過(guò)設備將其映射成PC機的物理內存,實(shí)現CAN與PC機的高速數據交換。CAN總線(xiàn)適配卡上帶有光電隔離,可增強系統在惡劣環(huán)境中的抗干擾能力??偩€(xiàn)兩端各有1個(gè)電阻R(約120Ω)起總線(xiàn)阻抗匹配作用。

2 CAN適配卡的設計

2 CAN適配卡的設計
2.1 硬件設計

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

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

關(guān)鍵詞:
CAN總線(xiàn)
適配卡
控制單元
SJA1000
雙口RAM
相關(guān)推薦
技術(shù)專(zhuān)區
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機控制
- 藍牙
- PLC
- PWM
- 汽車(chē)電子
- 轉換器
- 電源管理
- 信號放大器
評論