基于VxWorks的VME從板驅動設計與實現(xiàn)
2 數(shù)據(jù)采集板的硬件結構抽象
從主板的VME地址空間上看從板的結構圖如圖3所示。本文引用地址:http://www.ex-cimer.com/article/159333.htm
這樣的數(shù)據(jù)結構設計實現(xiàn)了對從板的抽象,使得驅動程序具有良好的可移植性,方便的實現(xiàn)對多種板卡的驅動。
3.2 數(shù)據(jù)傳輸機制設計
驅動程序設計模仿了Linux操作系統(tǒng)實現(xiàn)了數(shù)據(jù)傳輸?shù)臋C制——查詢機制,數(shù)據(jù)傳輸?shù)淖枞麢C制及信號通知機制。
查詢機制主要是指驅動程序為應用程序提供查詢緩沖區(qū)標志的接口,應用程序可以隨時查詢緩沖區(qū)的狀態(tài)而不會引起任務狀態(tài)的變化;阻塞機制是調用獲取緩沖區(qū)的任務在緩沖區(qū)沒有數(shù)據(jù)時會使該任務處于阻塞狀態(tài),直到緩沖區(qū)數(shù)據(jù)可用獲得后,任務才會重新獲得運行;信號機制是應用程序預先設定一個信號處理函數(shù),當緩沖區(qū)有數(shù)據(jù)時,系統(tǒng)就會自動調用這個信號處理函數(shù)而完成用戶預定的操作;阻塞機制的任務圖示如圖4所示,這些機制的細節(jié)可用參考文獻。要實現(xiàn)這些功能需要實現(xiàn)中斷處理機制、字符設備操作的ioctrl方法和read方法。
4 驅動程序的實現(xiàn)
4.1 中斷程序的實現(xiàn)
中斷程序的實現(xiàn)上使用了上、下兩半部機制,上半部是中斷處理函數(shù),下半部是中斷處理任務,上、下兩半部使用信號量進行同步,其中功能性的操作主要安排在中斷處理任務中。其程序框架如圖5所示。在中斷任務中實現(xiàn)對數(shù)據(jù)緩沖區(qū)的操作及緩沖區(qū)標志操作,實現(xiàn)操作的過程中著重解決與ioctrl方法和read方法進行同步。
評論