CAN總線分布式系統(tǒng)適配卡和控制單元設(shè)計
3 控制單元設(shè)計
控制單元的任務(wù)就是對現(xiàn)場環(huán)境參數(shù)進(jìn)行采集并從CAN總線上接收上位機(jī)的命令。根據(jù)上位機(jī)的要求,對設(shè)備進(jìn)行控制或?qū)⒉杉臄?shù)據(jù)通過CAN總線傳給上位機(jī)?,F(xiàn)以溫室控制單元為例說明控制單元設(shè)計方法。溫室控制單元的結(jié)構(gòu)原理如圖8所示。以AT89C52為核心,采用2片8255擴(kuò)展I/O端口,其中2個PA口和1個PB口用來檢測天窗、遮陽傘、補(bǔ)光燈、通風(fēng)機(jī)等21路開關(guān)量的狀態(tài)。由于8255的PC口的各位通過置復(fù)位控制字可以單獨置位或復(fù)位,AT89C52的P1口可以按位尋址,所以用8255的2個PC口和AP89C52的P1口來控制繼電器的吸合。3片8位A/D轉(zhuǎn)換器ADC0809實現(xiàn)對溫度、濕度、pH值、CO2濃度、光照強(qiáng)度、液位等20路模擬量的數(shù)據(jù)采集。
控制單元的控制軟件采用匯編語言編程,主要包括初始化、數(shù)據(jù)采集、數(shù)據(jù)通信、I/O接口控制等功能。初始化包括對8255和SJA1000的初始化,使8255的PA、PB口作為輸入口,PC口各位通過置復(fù)位控制字可以單獨置位或復(fù)位,從而開啟或停止一個繼電器的動作。數(shù)據(jù)采集采用查詢方式工作,每一路模擬量連續(xù)采集3次,中值濾波后作為該傳感器的數(shù)據(jù)存入相應(yīng)的內(nèi)部RAM中,全部數(shù)據(jù)采集完后再檢測開關(guān)狀態(tài)并存入相應(yīng)RAM中。隨后開CPU中斷,進(jìn)入數(shù)據(jù)循環(huán)采集狀態(tài),等待CAN通信中斷的產(chǎn)生。本系統(tǒng)采用中斷方式實現(xiàn)AT89C52與SJA1000之間的通信。
需要說明的是,CAN2.0A或CAN 2.0B協(xié)議只是一個低層的規(guī)范,用戶還需要定制簡單的應(yīng)用層協(xié)議。應(yīng)用層協(xié)議的任務(wù)一方面是將要發(fā)送的數(shù)據(jù)分類、拆卸、合并,確定發(fā)送對象,再根據(jù)CAN的數(shù)據(jù)鏈路層協(xié)議規(guī)范填寫CAN的各個信息幀;另一方面是根據(jù)應(yīng)用層協(xié)議解釋接收數(shù)據(jù)的具體含義,并進(jìn)行相應(yīng)的處理。
控制單元的控制軟件采用匯編語言編程,主要包括初始化、數(shù)據(jù)采集、數(shù)據(jù)通信、I/O接口控制等功能。初始化包括對8255和SJA1000的初始化,使8255的PA、PB口作為輸入口,PC口各位通過置復(fù)位控制字可以單獨置位或復(fù)位,從而開啟或停止一個繼電器的動作。數(shù)據(jù)采集采用查詢方式工作,每一路模擬量連續(xù)采集3次,中值濾波后作為該傳感器的數(shù)據(jù)存入相應(yīng)的內(nèi)部RAM中,全部數(shù)據(jù)采集完后再檢測開關(guān)狀態(tài)并存入相應(yīng)RAM中。隨后開CPU中斷,進(jìn)入數(shù)據(jù)循環(huán)采集狀態(tài),等待CAN通信中斷的產(chǎn)生。本系統(tǒng)采用中斷方式實現(xiàn)AT89C52與SJA1000之間的通信。
需要說明的是,CAN2.0A或CAN 2.0B協(xié)議只是一個低層的規(guī)范,用戶還需要定制簡單的應(yīng)用層協(xié)議。應(yīng)用層協(xié)議的任務(wù)一方面是將要發(fā)送的數(shù)據(jù)分類、拆卸、合并,確定發(fā)送對象,再根據(jù)CAN的數(shù)據(jù)鏈路層協(xié)議規(guī)范填寫CAN的各個信息幀;另一方面是根據(jù)應(yīng)用層協(xié)議解釋接收數(shù)據(jù)的具體含義,并進(jìn)行相應(yīng)的處理。
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論