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