999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于S3C6410 及Wince 系統的CAN 驅動的設計與優化

2021-05-12 02:59:52劉海龍吳海波張蕾
電子設計工程 2021年8期
關鍵詞:優化系統設計

劉海龍,吳海波,張蕾

(湖南鐵道職業技術學院,湖南株洲 412001)

控制器局域網(Controller Area Network,CAN)總線是國際上應用最廣泛的現場總線之一,其屬于多主機半雙工異步串行通信總線,具有通信實時性好、傳輸速度快、抗干擾能力強和成本低等優點[1]。Wince 系統作為嵌入式系統中的重要組成部分,穩定性好,在工業應用領域占有重要地位,如車機系統、工業控制等領域應用廣泛[2]。CAN 總線通信可以集成于各類嵌入式軟硬件平臺,在多種嵌入式軟硬平臺上均有成熟研究和設計[3]。文獻[4]中介紹了基于VxWorks 系統平臺下CAN 驅動程序的設計方法[4];文獻[5]中給出了基于Linux 系統平臺下的獨立CAN控制器驅動設計和優化方案[5];文獻[6]中介紹了基于SPARC V8 硬件構架平臺下CAN 模塊的驅動設計方法[6]。上述關于CAN 的設計方案通道數大多是在2路以內,適合一些通信功能相對簡單,具有一定通用性的領域。文中CAN 通信應用于基于工業機器人的數控機床上下料過程中,需要滿足多六維力覺傳感器、雙目機器人視覺數據和機器人系統反饋信號等多路信號的實時通信要求,硬件平臺的I/O 也需要復用通道,因此現有的驅動設計方案無法滿足應用需求。

該文采用S3C6410 為硬件核心,Wince8 為軟件系統平臺研究開發CAN 總線驅動程序,S3C6410 是一款基于ARM1176JZF-S 核的終端設備通用處理器,16/32 位RISC,可穩定運行在667 MHz 主頻以上,性價比高,在工業終端領域有廣泛的應用[7-8]。CAN通信模塊采用Microchip 的MCP2515,該芯片有6 個驗收屏蔽寄存器和6 個驗收濾波寄存器,功能完全滿足現場應用需求[9]。以S3C6410 硬件平臺對Wince系統下的CAN 總線驅動的研究成果較少,在多板多通道CAN 通信過程中,存在中斷頻率高導致數據傳輸效率低下問題[10]。針對該問題,該文也在驅動設計中通信效率環節上進行了優化設計和驗證,提高整個系統通信的穩定性和高效性。

1 硬件設計

模塊采用的Microchip MCP2515,是一款獨立局域網絡協議控制器,支持CAN V2.0B 技術規范,能發送和接收標準、擴展數據幀及遠程幀[11-12]。收發器采用TAJ1051T,收發器的功能是提供控制器區域網絡CAN 協議控制S3C6410和物理雙線CAN MCP2515總線之間的接口,該收發器高速達1 Mbit/s,為控制器核心S3C6410 和CAN 協議控制器MCP2515 提供差分發射和接收功能[13]。其部分關鍵電路設計圖如圖1 所示,其中TXCAN 和RXCAN 連接S3C6410 收發I/O 引腳;連接CAN 通信的下位機分別為工業機器人上下料工作站傳感器信號采集終端、視覺信號采集終端,上位機為工業機器人信號控制器端,整個工作站通過CAN總線通信實現分布式結構。

圖1 硬件部分電路設計圖

2 CAN驅動程序設計

基于Microchip MCP2515 驅動程序設計首先完成MCP2515 工作原理的流程結構設計,根據工作流程按功能分為地址映射、I/O 接口設計、系統接口處理、中斷處理功能和初始化函數等設計。

2.1 地址映射與配置

在基于Wince8 下的MCP2515 驅動程序設計中,由于系統內核程序不能直接讀取物理地址,需要將物理地址映射到虛擬空間,地址是由譯碼器確定的[14]。內核程序中設計了MmMapIoSpace()函數實現該功能,并配置了MCP2515 的兩種工作模式,分別為回環和標準模式,其中回環模式用于多終端的CAN 組網通信,標準模式用于標準的CAN 聯機通信[15]。其關鍵代碼如下:

隨后配置MODBUS 通信內容協議的位時間tbit參數,表示CAN 每幀數據組成段構成的時間分配參數,組合公式如下:

以上式中的各時間參數分別對應為同步段、傳播段、相位緩沖段PS1、相位緩沖段PS2,Microchip MCP2515 數據手冊中規定須滿足PS1>PS2 條件,因此該參數配置的關鍵代碼如下:

2.2 關鍵接口函數

I/O 接口涉及的關鍵函數有CAN_Open、CAN_Close、CAN_Write、CAN_Read 和Init_MCP2515 共5 個,其中部分功能采用函數調用的方式實現,如CAN_IOControl 函數,用于上位機應用程序對I/O 端口的控制,使用中通過I/O 接口函數間接調用。

1)CAN_Open 函數設計

函數原型為DWORD CAN_Open(DWORD dwData,DWORD dwAccess,DWORD dwShareMode),主要是配置MCP2515 的工作模式,并提供上位機應用程序打開該驅動的接口;打開CAN_Open 函數時,需要對通信的波特率進行配置,調用波特率配置函數。

2)CAN_Close 函數設計

函數原型為BOOL CAN_Close(DWORD dwData),主要是配置MCP2515 驅動程序,關閉時為控制進行復位操作,調用了復位清零函數。上位機應用程序關閉該驅動的接口函數為CloseHandle(HANDLE),執行成功返回TURE,執行失敗則返回FALSE。

3)Init_MCP2515 函數設計

函數原型為void Init_MCP2515 (CanBandRate bandrate),主要用于配置MCP2515 的通道I/O 參數狀態初始化、波特率設定、濾波及工作模式參數等,該函數在執行CAN_Open 時需要被調用。其中涉及的所有S3C6410 連接I/O 端口均需要對其狀態進行初始化,否則可能會因為I/O 狀態不確定導致通信錯亂的現象,I/O 初始化部分代碼如下。

4)CAN_Write 函數設計

函數原型為DWORD CAN_Write(DWORD hOpen Context,LPCVOID pSourceBytes,DWORD NumberOf Bytes),主要用于向接收終端發送數據幀,數據緩存為pSourceBytes,數據位為NumberOfBytes,用于發送接收端數據校驗,提高通信的準確性。在應用程序中執行WriteFile()函數寫入設備數據,其寫入關鍵程序如下。

為降低中斷頻率,MCP2515 的發送中斷被禁用,發送前先查詢寄存器的緩沖器的狀態,緩沖器清零則立即發送幀數據,若緩沖器鎖定則輪詢方式循環查詢狀態,達到超時數值后返回并提示,函數的發送流程如圖2 所示。

5)CAN_Read 函數設計

圖2 CAN_Write函數發送流程

函數原型為DWORD CAN_Read(DWORD hO penContext,LPVOID pBuffer,DWORD count),主要用于讀取總線上的數據幀,pBuffer 為數據緩沖區,count 為數據位,用于校驗準確性。MCP2515 收到數據幀后觸發中斷,中斷處理發送消息列隊,該函數則讀取消息列隊,將數據讀取至緩沖區中。應用程序中執行ReadFile()函數讀取設備數據,由于系統采用分布式多設備的組網通信,在數據讀取時需要先讀取CAN 總線ID,每個ID 為唯一的,且對應具體的設備終端,其關鍵代碼如下。

其工作流程和CAN_Write 函數類似,其流程圖此處不再贅述。

2.3 中斷處理優化

對于嵌入式實時操作系統,為了滿足系統對硬件的實時性響應需求,需要通過高效的中斷服務程序來滿足要求[16]。MCP2515 的中斷類型有發送中斷、接收中斷、錯誤中斷等,采用低電平中斷[17-18]。中斷處理的設計思路為先判斷中斷狀態再執行相應的處理,對于發送與接收中斷,當發送或接收數據緩沖區釋放后自動執行中斷的清除。

S3C6410 的WINCE BSP 中已經對CPU 中斷端口進行了定義和事件綁定,在該文的應用中對CPU 中斷I/O 進行了效率優化,所有外部中斷均集成至一個CPU,避免了外部中斷過多導致的可維護性差、運行效率低的缺點。中斷的事件創建和等待事件部分關鍵程序如下:

3 測試與分析

該文在S3C6410 主板上對CAN 通信進行驅動調試與測試分析,主要測試CAN 總線的幀傳輸效率和驅動程序的穩定性。傳輸速率主要是測試數據幀的發送、接收速度以及中斷響應頻率。由于CAN 總線通信是采用多終端組網數據采集和控制,若各個通信終端中斷頻率高,會占用過多的系統硬件資源導致性能下降,甚至出現死機現象。通過中斷處理優化,在數據通信時,CAN 上位機中斷響應明顯下降,幾乎不存在丟幀問題,性能穩定。

驅動程序的組網穩定性測試則主要是測試多設備聯機情況下CAN 運行情況,該文測試采用了單臺S3C6410 主機連接6 臺STM32 數據采集終端,當任意斷開1~3 臺STM32 終端,造成CAN 通信模塊異常。測試優化前當1 號CAN 模塊異常時,第2 號CAN 模塊通道則變為8~15,造成通道沖突報錯。優化后當1號CAN 模塊異常時,第2 號CAN 模塊正常工作,不會受影響,異常模塊則被隔離。具體結果如表1 所示。

表1 優化前后測試數據

測試結果表明,驅動程序中的接口功能函數、中斷服務程序優化后,能夠有效提高CAN 多終端設備的穩定組網和高速通信,降低系統中斷頻率,提高了系統性能,保證了整個系統的穩定運行。

4 結束語

該文以S3C6410 為硬件平臺,在Wince8 嵌入式系統下,提出一種針對Microchip MCP2515 的CAN 驅動程序的設計與優化方案,該驅動程序集成于BSP中。該驅動程序支持多設備終端的組網和CAN 總線通信,實現了多種STM32 終端與S3C6410 上位機之間的數據通信,且下位機終端設備具有良好的擴展性,通信協議確定后終端設備具有通用性。實驗結果表明,該驅動程序能夠穩定運行,性能可靠。

猜你喜歡
優化系統設計
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
主站蜘蛛池模板: 日本亚洲成高清一区二区三区| 18禁黄无遮挡网站| 一本久道久久综合多人| 欧美乱妇高清无乱码免费| 久久久久免费精品国产| 丁香五月激情图片| 国产精品妖精视频| 91久久精品日日躁夜夜躁欧美| 毛片免费网址| 在线观看视频99| 国产精品尹人在线观看| 国产黄在线免费观看| 无码内射在线| 国产成人h在线观看网站站| 亚洲精品卡2卡3卡4卡5卡区| 亚洲天堂久久久| 亚洲成人播放| 98精品全国免费观看视频| 亚洲成在线观看 | 中文无码精品a∨在线观看| 国产青榴视频在线观看网站| 日本手机在线视频| h视频在线观看网站| 福利国产微拍广场一区视频在线| 午夜电影在线观看国产1区| 四虎在线高清无码| 老司国产精品视频91| 亚洲欧美日韩成人在线| 色135综合网| 国产一区三区二区中文在线| 欧美视频免费一区二区三区 | 亚洲色图欧美激情| 91亚洲精品第一| 亚洲人人视频| 免费国产在线精品一区| 国产剧情一区二区| 亚洲国产亚综合在线区| 欧美国产菊爆免费观看 | 亚洲乱码精品久久久久..| 国产青榴视频在线观看网站| 好吊日免费视频| 久久精品人人做人人爽97| 99r在线精品视频在线播放| 亚洲啪啪网| 亚洲最新网址| 中文字幕无线码一区| 亚洲人精品亚洲人成在线| 伊人色综合久久天天| 九九九九热精品视频| 91人妻日韩人妻无码专区精品| 色偷偷一区二区三区| 亚洲VA中文字幕| 亚洲综合色吧| 国产精品自在在线午夜| 99热这里只有免费国产精品| 99re在线免费视频| 国产流白浆视频| 欧美精品v| 久久精品国产亚洲麻豆| 中文字幕波多野不卡一区| 久久精品最新免费国产成人| 精品无码一区二区三区电影| 亚洲国产成熟视频在线多多| 黄色在线不卡| 重口调教一区二区视频| 免费无码AV片在线观看国产| 中文字幕丝袜一区二区| AV在线麻免费观看网站| 亚洲人成网18禁| 亚洲精品午夜无码电影网| 亚洲欧美在线综合一区二区三区 | av性天堂网| 九九视频在线免费观看| 国产精品不卡片视频免费观看| 亚洲福利片无码最新在线播放| 欧美亚洲欧美| 亚洲欧美综合另类图片小说区| 中文字幕亚洲另类天堂| 老司机精品99在线播放| 久久国产精品77777| 精品国产99久久| 亚洲国产成人自拍|