- 相關推薦
VxWorks下PC/104-CAN驅動程序設計
摘要:詳細介紹實時多任務操作系統(tǒng)VxWorks環(huán)境下驅動程序的設計原理;針對驅動程序實現(xiàn)的困難,給出VxWorks下實現(xiàn)驅動程序的工作步驟。文件以PC/104-CAN適配卡為例,簡要介紹硬件結構,重點給出驅動程序實現(xiàn)的關鍵代碼。關鍵詞:RTOS VxWorks PC/104 CAN I/O系統(tǒng) 驅動系統(tǒng)
VxWorks是一款優(yōu)秀的實時多任務操作系統(tǒng),具有搶占式調試、中斷延遲小等特點。本文在簡要介紹必備的硬件環(huán)境下,以VxWorks為平臺,詳細介紹驅動程序的開發(fā)。
1 PC/104-CAN適配卡的硬件結構
PC/104-CAN適配卡主要由CAN控制器(SJA1000)、光電隔離(6N137),收發(fā)驅動器(82C250)及譯碼電路組成。編程主要了解的是控制器SJA1000。CAN適配卡原理如圖1所示。
2 CAN地址譯碼和中斷選擇
系統(tǒng)104主板的CPU為486DX,其對接口板訪問有兩種方式:內存映射和I/O訪問。I/O尋址采用專門的指令,每次只能傳送單個字節(jié)。內存映射方式可以訪問較大的地址空間并且指令豐富,便于實現(xiàn)快速交換數據。本文討論的CAN卡采用存映射模式工作,與486DX接口是104總線,它與ISA總線兼容。對于Intel X86體系的CPU,ISA可以映射的空間為0xC8000~0xEFFFF。使用比較器和地址選擇開關組成可選端口地址譯碼電路,通過開關選通內存映射基地址(C8000H、C9000H、CA000H、…、EF000H),以避免與其它器件沖突。CAN偏移地址分配如下:
00~FFH SJA1000的寄存器;
100H~1FFH 對該范圍內的任意地址進行寫操作,均可導致CAN硬件復位。
SJA1000的INT引腳通過跳線選擇IRQ3~7、IRQ9~12或IRQ15中的一個,避免與其它的適配卡沖突。
3 PC/104-CAN適配卡驅動實現(xiàn)
3.1 VxWorks驅動概述
VxWorks操作系統(tǒng)有兩種方式實現(xiàn)驅動。第一種方式是,把設備驅動程序作為獨立任務實現(xiàn),直接在頂層任務中實現(xiàn)硬件操作,完成特有專用的驅動程序。第二種方式是,VxWorks的I/O系統(tǒng)將設備程序作為內核過程實現(xiàn)。這種方式便于實現(xiàn)I/O子系統(tǒng)的層次模型,便于文件系統(tǒng)一起把設備作為特殊文件處理,提供統(tǒng)一的管理、統(tǒng)一的界面和統(tǒng)一的使用方法,并把設備、文件及網絡通信組織成為一致的更高層次的抽象,為用戶提供統(tǒng)一的系統(tǒng)服務和用戶接口。我們和這種驅動方式。
作為I/O系統(tǒng)和硬件設備之間的連接層,VxWorks驅動就是屏蔽硬件操作,為I/O系統(tǒng)提供服務。實現(xiàn)一個完整的驅動,必須了解VxWorks下I/O的三個基本元素:File、Driver和Dervice。File是為用戶提供訪問設備的統(tǒng)一接口;Driver是實現(xiàn)具體的基本控制函數,也就是實現(xiàn)I/O系統(tǒng)所需要的接口;而Device則是一個抽象的硬件設備,是一系列的結構體、變量和宏定義對實際物理設備的定義。一般而言,實現(xiàn)一個驅動應該有三個基本的步驟:①用編程語言完成
[1] [2] [3] [4] [5]
【VxWorks下PC/104-CAN驅動程序設計】相關文章:
案例驅動在C語言程序設計教學中的探索實踐04-28
在《ASP程序設計》教學中采用任務驅動教學法的研究04-26
低雜波電流驅動下加熱的數值模擬04-27
基于Windows 2000的多路話音采集壓縮卡驅動程序設計05-02
任務驅動下的高職旅游英語口語教學04-30
什么是移動PC04-26
結構驅動戰(zhàn)略下的虛擬組織:演化、條件和影響04-28
由要素驅動 走向創(chuàng)新驅動05-01