資料介紹
摘要:主要討論在WinCE設(shè)計和開發(fā)CAN卡通信程序的方法;詳細介紹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)市場上風頭正勁的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世紀80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開的一種串行數(shù)據(jù)通信協(xié)議。它是一種多主總線,廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。這種方法使網(wǎng)絡(luò)內(nèi)節(jié)點個數(shù)在理論上不受限制,擴展格式中的29位的標識碼便可以定義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)市場上風頭正勁的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世紀80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開的一種串行數(shù)據(jù)通信協(xié)議。它是一種多主總線,廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。這種方法使網(wǎng)絡(luò)內(nèi)節(jié)點個數(shù)在理論上不受限制,擴展格式中的29位的標識碼便可以定義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)存地址的讀寫。
CAN
加入交流群
掃碼添加小助手
加入工程師交流群
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 基于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ū)動程序如何正確安裝 2.9k次閱讀
- 怎么編寫Framebuffer驅(qū)動程序 2.4k次閱讀
- 解析PLC梯形圖程序設(shè)計 2.4k次閱讀
- ProfiNet輸入/輸出端的驅(qū)動程序解析 4.1k次閱讀
- 基于SJA1000和P82C250芯片實現(xiàn)PCM3680雙口CAN總線通信卡的設(shè)計 3.1k次閱讀
- 基于TMS320VC5410 DSP的PCI語音卡和WDM設(shè)備驅(qū)動程序設(shè)計 3.6k次閱讀
- 米爾科技LINUX設(shè)備驅(qū)動程序教程 2.7k次閱讀
- CAN通信軟件設(shè)計 4.7k次閱讀
- 淺談電腦驅(qū)動程序的工作原理 詳解電腦驅(qū)動程序意義 3.2w次閱讀
- 關(guān)于驅(qū)動程序設(shè)計的5個竅門 4.9k次閱讀
- 8255A驅(qū)動程序 3.9k次閱讀
- 8155驅(qū)動程序 3.8k次閱讀
- max7219點陣驅(qū)動程序分享 2w次閱讀
- Xilinx設(shè)備的驅(qū)動程序 8.7k次閱讀
- PCI驅(qū)動程序開發(fā)實例 7.3k次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊
- 3.00 MB | 次下載 | 免費
- 2MDD品牌三極管BC817數(shù)據(jù)手冊
- 2.51 MB | 次下載 | 免費
- 3MDD品牌三極管D882數(shù)據(jù)手冊
- 3.49 MB | 次下載 | 免費
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊
- 3.26 MB | 次下載 | 免費
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊
- 3.09 MB | 次下載 | 免費
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊
- 2.32 MB | 次下載 | 免費
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 3PC5502負載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 22次下載 | 免費
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論