資料介紹
摘要:主要討論在WinCE設(shè)計和開發(fā)CAN卡通信程序的方法;詳細(xì)介紹CAN卡底層驅(qū)動函數(shù)的設(shè)計和實現(xiàn),同時將驅(qū)動進行封裝,用動態(tài)庫的方式提供給用戶CAN卡通信用的驅(qū)動,使用啟可以方便地在自己的程序中調(diào)用,實現(xiàn)WinCE下的CAN卡通信。
關(guān)鍵詞:WinCE.NET CAN 驅(qū)動
引言
近年來電力行業(yè)為了快速部署變電站,采用了建造整體變電所的方法:在生產(chǎn)基地將變電站的內(nèi)部設(shè)備安裝、調(diào)試完成,只留下與外界的接口,整體運到變電站所在地后進行安裝和簡單調(diào)試即可投入運行。其內(nèi)部設(shè)備通過CAN總線進行通信,系統(tǒng)原有的監(jiān)控軟件基于DOS系統(tǒng),維護調(diào)試比較困難,因此想要尋求更方便、友好的系統(tǒng)支持。經(jīng)過比較,嵌入式操作系統(tǒng)市場上風(fēng)頭正勁的Windows CE .NET成為最終選擇。微軟的最新產(chǎn)品Windows CE.NET提供了端對端的開發(fā)、調(diào)試手段,可以不拆卸設(shè)備的情況下通過Telnet登錄到WindowsCE上進行調(diào)試和維護,其系統(tǒng)本身為嵌入式市場進行重新設(shè)計,包括創(chuàng)建一個基于WindowsCE的定制設(shè)備所需的一切。這樣就需要將原來DOS下的程序移植到WindowsCE.NET下,但是各個硬件廠商目前還沒有提供CAN通信卡在Windows CE.NET下的驅(qū)動,所以開發(fā)Windows CE.NET下的CAN卡驅(qū)動成為項目推行中的關(guān)鍵一環(huán)。
本文主要針對研華的雙口CAN卡PCM3680進行分析,介紹在WindowsCE.ENT系統(tǒng)下進行底層設(shè)備驅(qū)動開發(fā)的方法并提供CAN通信的實例。
1 CAN總線通信協(xié)議及CAN通信卡介紹
CAN總線是德國Bosch公司20世紀(jì)80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開的一種串行數(shù)據(jù)通信協(xié)議。它是一種多主總線,廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。這種方法使網(wǎng)絡(luò)內(nèi)節(jié)點個數(shù)在理論上不受限制,擴展格式中的29位的標(biāo)識碼便可以定義2 29個不同的數(shù)據(jù)塊。
在本項目中使用的是研華的PCM3680,這是一塊嵌入式PC104的雙口CAN總線通信卡;CAN控制器采用Philips的獨立CAN控制器SJA1000芯片;CAN收發(fā)器采用Philips的P82C250,可以同時操作兩個CAN網(wǎng)絡(luò),提供高達1Mb/s的傳輸速度。PCM3680支持很寬的中斷范圍:中斷3、4、5、6、7、9、10、11、12、15,同時1000V的光電隔離提供系統(tǒng)高可靠性。在CAN卡通信中,要用到CAN控制器中的很多寄存器,各個寄存器的含義和作用可以參考控制芯片的說明書。圖1列出驅(qū)動程序設(shè)計中用到最主要的寄存器結(jié)構(gòu)。
2 CAN卡驅(qū)動底層函數(shù)設(shè)計
本方案設(shè)計CAN驅(qū)動是放在Windows CE操作系統(tǒng)的內(nèi)核下層,位于OEM adaptation layer(OAL)層的一個真正的驅(qū)動,而不是在主程序中的串口操作。在Windows CE的設(shè)備管理器可以看到CAN1和CAN2兩個端口,并且可以查看其工作的正常與否和對其進行配置。如:中斷號和I/O地址。
2.1 CAN卡寄存器讀寫函數(shù)
CAN卡的通信是通過操作CAN卡上的CAN控制器進行的。在CAN控制器中有很多寄存器,如控制寄存器、命令寄存器、狀態(tài)寄存器、中斷寄存器等,通過讀寫這些寄存器中的命令狀態(tài)字可以檢測和控制CAN卡的行為。在Windows CE.NET下,通過調(diào)用DOK中的API函數(shù)HalTranslateBusAddress,將CAN卡分配的物理地址映射為邏輯地址。這樣各個寄存器對應(yīng)的就是CAN卡基地址的偏移地址,因此,對寄存器的讀寫就轉(zhuǎn)化為對內(nèi)存地址的讀寫。
關(guān)鍵詞:WinCE.NET CAN 驅(qū)動
引言
近年來電力行業(yè)為了快速部署變電站,采用了建造整體變電所的方法:在生產(chǎn)基地將變電站的內(nèi)部設(shè)備安裝、調(diào)試完成,只留下與外界的接口,整體運到變電站所在地后進行安裝和簡單調(diào)試即可投入運行。其內(nèi)部設(shè)備通過CAN總線進行通信,系統(tǒng)原有的監(jiān)控軟件基于DOS系統(tǒng),維護調(diào)試比較困難,因此想要尋求更方便、友好的系統(tǒng)支持。經(jīng)過比較,嵌入式操作系統(tǒng)市場上風(fēng)頭正勁的Windows CE .NET成為最終選擇。微軟的最新產(chǎn)品Windows CE.NET提供了端對端的開發(fā)、調(diào)試手段,可以不拆卸設(shè)備的情況下通過Telnet登錄到WindowsCE上進行調(diào)試和維護,其系統(tǒng)本身為嵌入式市場進行重新設(shè)計,包括創(chuàng)建一個基于WindowsCE的定制設(shè)備所需的一切。這樣就需要將原來DOS下的程序移植到WindowsCE.NET下,但是各個硬件廠商目前還沒有提供CAN通信卡在Windows CE.NET下的驅(qū)動,所以開發(fā)Windows CE.NET下的CAN卡驅(qū)動成為項目推行中的關(guān)鍵一環(huán)。
本文主要針對研華的雙口CAN卡PCM3680進行分析,介紹在WindowsCE.ENT系統(tǒng)下進行底層設(shè)備驅(qū)動開發(fā)的方法并提供CAN通信的實例。
1 CAN總線通信協(xié)議及CAN通信卡介紹
CAN總線是德國Bosch公司20世紀(jì)80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開的一種串行數(shù)據(jù)通信協(xié)議。它是一種多主總線,廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。這種方法使網(wǎng)絡(luò)內(nèi)節(jié)點個數(shù)在理論上不受限制,擴展格式中的29位的標(biāo)識碼便可以定義2 29個不同的數(shù)據(jù)塊。
在本項目中使用的是研華的PCM3680,這是一塊嵌入式PC104的雙口CAN總線通信卡;CAN控制器采用Philips的獨立CAN控制器SJA1000芯片;CAN收發(fā)器采用Philips的P82C250,可以同時操作兩個CAN網(wǎng)絡(luò),提供高達1Mb/s的傳輸速度。PCM3680支持很寬的中斷范圍:中斷3、4、5、6、7、9、10、11、12、15,同時1000V的光電隔離提供系統(tǒng)高可靠性。在CAN卡通信中,要用到CAN控制器中的很多寄存器,各個寄存器的含義和作用可以參考控制芯片的說明書。圖1列出驅(qū)動程序設(shè)計中用到最主要的寄存器結(jié)構(gòu)。
2 CAN卡驅(qū)動底層函數(shù)設(shè)計
本方案設(shè)計CAN驅(qū)動是放在Windows CE操作系統(tǒng)的內(nèi)核下層,位于OEM adaptation layer(OAL)層的一個真正的驅(qū)動,而不是在主程序中的串口操作。在Windows CE的設(shè)備管理器可以看到CAN1和CAN2兩個端口,并且可以查看其工作的正常與否和對其進行配置。如:中斷號和I/O地址。
2.1 CAN卡寄存器讀寫函數(shù)
CAN卡的通信是通過操作CAN卡上的CAN控制器進行的。在CAN控制器中有很多寄存器,如控制寄存器、命令寄存器、狀態(tài)寄存器、中斷寄存器等,通過讀寫這些寄存器中的命令狀態(tài)字可以檢測和控制CAN卡的行為。在Windows CE.NET下,通過調(diào)用DOK中的API函數(shù)HalTranslateBusAddress,將CAN卡分配的物理地址映射為邏輯地址。這樣各個寄存器對應(yīng)的就是CAN卡基地址的偏移地址,因此,對寄存器的讀寫就轉(zhuǎn)化為對內(nèi)存地址的讀寫。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于WindowsCE.Net的CAN卡的驅(qū)動程序設(shè)計解析 0次下載
- 嵌入式Linux下的LCD驅(qū)動程序設(shè)計方案解析 0次下載
- WinCE流驅(qū)動程序設(shè)計概述 7次下載
- 基于Windows CE.NET的設(shè)備驅(qū)動程序開發(fā) 0次下載
- 基于Windows CENET嵌入式數(shù)據(jù)采集卡的驅(qū)動程序設(shè)計 0次下載
- 基于WINDOWS CE的開放式數(shù)控系統(tǒng)設(shè)備驅(qū)動程序開發(fā) 0次下載
- 基于WinCE環(huán)境的CAN適配卡驅(qū)動程序的設(shè)計與實現(xiàn) 3次下載
- 嵌入式Linux下CAN總線驅(qū)動程序設(shè)計.rar 51次下載
- PCI總線高速數(shù)據(jù)采集卡及其驅(qū)動程序設(shè)計
- 嵌入式uClinux下的CAN總線設(shè)備驅(qū)動程序設(shè)計
- 基于WindowsCE.NET的車載導(dǎo)航的LED驅(qū)動開發(fā)
- uClinux 下CAN 通信卡驅(qū)動程序的實現(xiàn)
- windowsCE.Net 下CAN卡的驅(qū)動程序設(shè)計
- WindowsCE.Net 下CAN 卡的驅(qū)動程序設(shè)計
- VxWorks下PC/104-CAN驅(qū)動程序設(shè)計
- CAN分析儀的驅(qū)動程序如何正確安裝 964次閱讀
- 怎么編寫Framebuffer驅(qū)動程序 402次閱讀
- 解析PLC梯形圖程序設(shè)計 1402次閱讀
- ProfiNet輸入/輸出端的驅(qū)動程序解析 3409次閱讀
- 基于SJA1000和P82C250芯片實現(xiàn)PCM3680雙口CAN總線通信卡的設(shè)計 2537次閱讀
- 基于TMS320VC5410 DSP的PCI語音卡和WDM設(shè)備驅(qū)動程序設(shè)計 2807次閱讀
- 米爾科技LINUX設(shè)備驅(qū)動程序教程 1965次閱讀
- CAN通信軟件設(shè)計 4123次閱讀
- 淺談電腦驅(qū)動程序的工作原理 詳解電腦驅(qū)動程序意義 2.9w次閱讀
- 關(guān)于驅(qū)動程序設(shè)計的5個竅門 4378次閱讀
- 8255A驅(qū)動程序 3192次閱讀
- 8155驅(qū)動程序 3057次閱讀
- max7219點陣驅(qū)動程序分享 1.8w次閱讀
- Xilinx設(shè)備的驅(qū)動程序 7967次閱讀
- PCI驅(qū)動程序開發(fā)實例 6701次閱讀
下載排行
本周
- 1FS4059B帶NTC升壓型兩節(jié)鋰電池充電管理IC數(shù)據(jù)手冊
- 3.24 MB | 1次下載 | 免費
- 2基于波形捕獲的超聲波傳感水流量計量技術(shù)應(yīng)用說明
- 1.01MB | 1次下載 | 免費
- 3ADE-12H混頻器規(guī)格書
- 0.28 MB | 1次下載 | 5 積分
- 4AD9984A高性能10位顯示接口英文手冊
- 0.49 MB | 1次下載 | 5 積分
- 551開發(fā)板芯片資料
- 14.95 MB | 1次下載 | 1 積分
- 6用TL431LI-Q1監(jiān)控電流供應(yīng)
- 176.71KB | 1次下載 | 免費
- 7Q1和非Q1器件的TPS54340/360/540/560和TPS54340B/360B/540B/560B之間的差異
- 123.6KB | 次下載 | 免費
- 8TPS512xx MOSFET驅(qū)動電路設(shè)計指南
- 886.86KB | 次下載 | 免費
本月
- 1HFSS電磁仿真設(shè)計應(yīng)用詳解PDF電子教程免費下載
- 24.30 MB | 129次下載 | 1 積分
- 2繼電保護原理
- 2.80 MB | 42次下載 | 免費
- 3正激、反激、推挽、全橋、半橋區(qū)別和特點
- 0.91 MB | 36次下載 | 1 積分
- 4GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
- 7.43 MB | 18次下載 | 免費
- 5在設(shè)計中使用MOSFET瞬態(tài)熱阻抗曲線
- 1.57MB | 15次下載 | 免費
- 6AD18學(xué)習(xí)筆記
- 14.47 MB | 8次下載 | 2 積分
- 7H橋中的電流感測
- 545.39KB | 7次下載 | 免費
- 8幾張電動車充電器電路圖
- 0.23 MB | 6次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935113次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191360次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81578次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73804次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評論
查看更多