1 、引言
近年來,隨著土地資源不斷的被開發利用,我國基礎建設的規模也進一步擴大,工程機械市場呈現持續增長態勢,但是國內的工程機械行業仍處于一種相對落后的生產方式,所以工程機械行業需要適合本行業要求的,智能的,性能優越的監控產品。嵌入式技術、總線技術和網絡技術等高新技術融入到工程機械行業的監控系統中來,是十分必要的。為此,本文設計了一種基于嵌入式系統和總線技術的工程機械監控系統終端,詳細討論了監控系統終端的構成和CAN總線的設計。
2 、監控系統終端的總體構成
監控終端負責前端控制系統所有單元的監控,包括安全監控、電液比例等單元并通過液晶顯示器和鍵盤進行人機交互,同時,連接視頻監控設備,隨時監控現場的情況。
如圖1所示,監控系統終端包括:車載監控系統控制模塊、人機交互模塊、存儲模塊、視頻監控模塊、CAN總線控制模塊。
圖1監控系統終端的總體構成
各部分的功能如下:
1.載監控系統控制模塊是整個終端的核心部件,采用ARM720TDMA內核的嵌入式處理器ARM7202,完成整個系統的控制功能。
2.儲模塊用來進行操作系統內核、引導程序和應用程序、以及驅動程序的存儲,并緩存執行過程中產生的各種數據,使系統能穩定的運行。
3.機交互模塊包括液晶顯示器和鍵盤輸入,用戶通過人機交互模塊進行直觀的監測和控制。
4.為了對現場工作狀況進行直接監控,系統集成了視頻監控模塊,通過視頻采集卡連接攝像機,將采集到的圖像轉換成數字信號并壓縮成JPEG格式文件,輸入到處理器中,供用戶進行監測。
5.系統通過CAN總線實現前端各個單元控制系統的監測。
3 、硬件設計
3.1 硬件總體結構
如圖2 所示,監控終端分成包括:嵌入式處理器7202、存儲系統、復位電路和晶振電路, JTAG調試接口、LCD顯示接口、RS-232串行接口、CAN總線接口。
圖2載監控終端硬件結構圖
各部分的功能如下:
1.晶振電路為系統提供工作時鐘。
2.復位電路用于完成系統上電復位和在系統工作時用戶按鍵復位。
3.存儲系統由FLASH存儲器、SDRAM存儲器組成。FLASH存儲器用于存放己調試好的用戶應用程序、嵌入式操作系統和其他在系統掉電后需要保存的用戶數據等。SDRAM存儲器作為系統運行時的主要區域。
4.JTAG接口可對芯片內部的所有部件進行訪問,通過該接口可對系統進行調試、編程等。
5.LCD接口用于連接人機交互所需要的顯示裝置。
6.CAN控制器為系統提供CAN總線接口,與前端各單元控制系統進行數據和指令的傳遞。
7.RS-232串行通信接口用于視頻壓縮卡的連接,傳輸視頻圖像。
3.2 CAN模塊的硬件設計
通過CAN模塊接口,ARM處理器可以直接訪問CAN寄存器組,這些寄存器可以配置CAN核心模塊、CAN信息處理模塊以及訪問信息RAM的方式。本系統采用飛利浦公司的TJA1050作為收發器,在CAN接口和CAN總線之間的收發器,作用是將3.3V的邏輯電平轉換為CAN的邏輯電平,也就是將發送和接收到的信號轉換成CAN總線和ARM可以識別的信號。
圖3 CAN模塊的電路設計
4 、ARM中CAN模塊的軟件設計
在構造和特性上,7202的CAN控制器與標準的CAN模塊基本沒有區別,只是在寄存器的個數與基地址的偏移上有些不同。
如圖4,在開始進行總線操作前需要做好4步工作。首先要使能CAN模塊,向CAN Enable Register寫入0X01,由于ARM的引腳是復用的,所以在使能CAN模塊以前,先要將CAN模塊占用的引腳切換到特殊模式。然后要初始化CAN模塊,主要是正確的配置Command Mask Register,這個寄存器的作用是用來配置CAN模塊收發的信息體。接著,配置波特率,通過所想達到的CAN總線波特率,計算出計算公式各個變量的值,而CAN的波特率計算公式如下:(Tseg2+Tseg1+SJW+3)* BRP = CAN_CLK/Fbps。左邊的4個變量在BRP寄存器中,而等式右邊的CAN_CLK是一個固定值,在這里是48MHz。最后,配置信息存儲器,信息體的配置是與具體的應用信息相關的,具體到信息緩沖寄存器組中的每一個寄存器的設置。需要提出的是,前面三步都是在初始化模式下完成的,而最后一步則是在正常模式下進行。在進行完這四部以后,就可以對CAN模塊進行操作了。
圖4 CAN模塊操作順序
linux操作系統把對CAN的操作看成是對文件的操作,對于文件,最基本的操作是打開、關閉、讀和寫。對于CAN模塊,讀與寫操作分別實現接收數據的讀取和發送,打開和關閉文件則分別實現CAN模塊的一些硬件資源的初始化和釋放先前所占有的資源,配置波特率、配置信息模式等配置特性的操作,則由ioctl函數完成的。
static int _int can_init(void)
{
初始化默認波特率、注冊驅動程序
}
int can_open(struct inode *inode, struct file *filp)
{
設置CAN工作寄存器、初始化讀操作隊列、注冊CAN模塊中斷
}
static int can_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
{
根據cmd參數選擇相應的操作
}
上面列舉出了對CAN操作的初始化、打開、和配置函數,其他的還有讀、寫、關閉等函數,最后所要實現的功能就是CAN模塊中斷,在中斷中主要完成對于讀寫位置標志的改變,以實現阻塞型I/O操作,這樣,用戶通過應用這些操作函數就完成了CAN總線的使用了。
5 、結語
本設計利用嵌入式系統和CAN總線,實現工程機械的車載監控的集成化、信息化和智能化,通過在嵌入式系統CAN總線的應用,可以方便的實現前端安全監控、電液比例等單元監控,并且可以進行人機交互和圖像采集,有很好的應用前景。
責任編輯:gt
-
處理器
+關注
關注
68文章
19265瀏覽量
229676 -
嵌入式
+關注
關注
5082文章
19111瀏覽量
304856 -
CAN總線
+關注
關注
145文章
1950瀏覽量
130733
發布評論請先 登錄
相關推薦
評論