前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇程序管理范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
[關鍵詞] 牙鉆;滅菌;工作程序管理
[中圖分類號]R78 [文獻標識碼] B[文章編號] 1673-7210(2009)06(b)-141-02
口腔科牙鉆的機頭結構復雜,腔隙多,更增加了消毒滅菌的難度。渦輪手機在停止轉動的瞬間,機頭內部呈負壓狀態,可導致口腔中的唾液、血液、微生物等回吸入手機內部,微生物可在手機內部死角處繁殖,再次使用時回吸物質就可隨轉動噴出的水霧進入另一患者的口腔,造成交叉感染[1]。所以從2004年開始,新的《消毒隔離技術規范》要求牙鉆處理從原來的消毒改為新的滅菌,這是一個重大的變革。為適應新的規范,我院口腔門診從2004年11月開始對牙鉆進行滅菌處理,嚴格執行一人一用一滅菌制度,確保了患者的就醫安全。然而這對于護士來講是一個從無到有的過程,這是一項新的工作,并且是在不增加人員的情況下,既要完成原有工作,還要承擔新的內容,并要確保門診的需要 。口腔門診平均每日60~70人次門診量,平均需要牙鉆30把左右。這就要求醫務人員適應新形勢,制訂相應的規章制度,安排科學的工作程序來完成此項工作。
1 牙鉆的滅菌程序與實施
1.1 清洗
清洗是牙鉆滅菌的第一步,也是非常重要的步驟。清洗的目的就是降低物品上的生物負荷,而微生物的數量和類型正是影響消毒滅菌效果的重要因素[2]。正是由于清洗不徹底,就有可能在一些較難洗到的器械的關節、管腔的縫隙或表面不平處黏附細菌,進而形成生物膜,阻止消毒因子接觸微生物細胞,造成消毒滅菌的失敗[2]。因此,清洗的意義就在于實現安全操作,以達到滅菌質量。為提高清洗效果,我科采用超聲波清洗機加多酶清洗液對牙鉆進行清洗,它能徹底對牙鉆進行清洗,并且達到手工清洗不能達到的效果。超聲波清洗的工作原理是通過高頻聲波在液體中產生氣穴現象而形成大量的微小氣泡,這些微小氣泡破裂后產生極小的真空區,使污染物與器械分離,從而產生擦洗效果,微小氣泡可達到細小溝紋處,因而有較強的清洗作用[3-4]。在進行這一程序前,要求醫生在將牙鉆從治療機取下之前,將牙鉆帶水運行1 min,以達到將牙鉆內部回吸唾液沖洗作用。然后立即送入消毒室,由護士用流水進行沖洗、進行初洗后放入超聲波清洗機內進行清洗5~10 min,清洗后的牙鉆用流水徹底沖洗后擦干,這樣就完成了清洗的程序。
1.2 高壓清洗、注油
同樣是清洗,但是這一程序同前一程序有著不同的用途。超聲波清洗是對牙鉆表面進行清潔,而高壓清洗卻起著對牙鉆內部進行清潔的作用。強大的壓力徹底對牙鉆內部進行清洗,而壓力注油又保證了對內部構件的保養作用,大大提高了牙鉆的使用壽命。
1.3 封裝
牙鉆徹底清潔后,要裝入封袋內待滅菌。我科采用紙塑袋一機一封裝的方法進行滅菌。紙塑帶的選擇一定要符合國家衛生部的標準,而且要有衛生部頒發的生產許可證。在這一過程中,首先護士要保證將牙鉆擦干,控凈水分及油,保證紙塑袋不被水及油浸濕,然后將鉆針從牙鉆上取下,同牙鉆一同封入袋內備用滅菌。將牙鉆編號、醫生姓名、滅菌日期、滅菌者姓名、登記在冊,并于封袋處寫明醫生姓名、滅菌時間、滅菌者姓名。
1.4 滅菌
在口腔科的消毒滅菌工作中,牙鉆的滅菌首選壓力蒸汽滅菌器。這是由于牙鉆內部有復雜的結構,小而深的縫隙及細管[5],所以濕熱高壓滅菌法是目前提倡的滅菌方法[6]。有條件的應當選用預真空壓力蒸汽滅菌器。通常溫度為121℃時維持15~20 min,對于牙鉆可耐熱大于132℃者,則采用132℃維持3.5~4 min,可殺死所有的微生物達到滅菌目的。將封袋完畢的牙鉆按照要求擺放在滅菌機里,放入滅菌指示卡進行滅菌處理。
以上四個程序就是一個牙鉆的滅菌過程,這一過程的操作需要1小時30分鐘才能完成。在這項工作的運行過程中,不是機械地執行以上四個步驟就可以較好地完成滅菌過程,其中還需要科學的管理。
2 滅菌程序的管理
2.1 設備的管理
在科技水平發達的今天,高技術含量的設備是高質量工作的前提。要完成牙鉆的一個滅菌程序,需要增加多種新的設備,如超聲波清洗機、高壓清洗機、封口機、高壓滅菌器,這些設備對于醫務人員來講是陌生的,所以必須要認真學習操作方法,注意事項及日常保養維護等。對此,要建立設備日常維護登記制度,將重要內容納入業務學習,確保了設備的正常使用。
2.2 制訂嚴格的交接制度及登記制度,以防止牙鉆的丟失
牙鉆屬于貴重設備,我科實行牙鉆定人保管,即每位醫生的牙鉆是固定的數量,根據牙鉆的編號進行區分。這樣既有利于保管又有利于保養,防止了設備的丟失。在進行滅菌時,要求醫生要當面交到消毒護士手中,滅菌后由消毒護士發放到醫生手中,并進行核對登記。
2.3 根據工作情況制訂程序及修改程序
在此項工作開展之初,護士長親自參與此項工作,并根據實際工作情況制訂了工作流程。如在初始運行過程中發現牙鉆在使用過程中噪音過大,考慮是油注過少的原因,所以在高壓清洗后增加人工注油這一項工作,運行一段時間后,牙鉆噪音消失,運轉正常。在程序實施的過程中會出現很多的問題,護士長要及時聽取護士的意見對存在的問題進行及時的整改,并修改工作程序使之更加合理化、科學化。
2.4 消毒室護士的培訓
消毒室護士崗位采取輪換制,每2個月進行1次換崗。當新的護士上崗前,除了進行物品交接外還要進行工作內容交接。護士長要求新任護士對所有設備的說明書進行閱讀,對工作程序進行熟悉后進行考核,合格后方可上崗。在上任1周內護士長跟班進行協助與監督。對于護士的培訓除了技術方面還要求護士有高度的責任心和慎獨的工作精神,這樣才能確保工作質量達標。
2.5 質量考核
通過設備保養記錄檢查設備保養情況,以確保滅菌設備處于正常使用狀態;通過3M指示卡登記本檢查每次滅菌效果是否達標;通過牙鉆滅菌登記本檢查每日牙鉆滅菌數量、時間及牙鉆滅菌后是否按編號發放到醫生手中。每月對高壓滅菌器進行1次生物檢測,并抽查滅菌后的牙鉆進行細菌培養。定期接受區、市疾病控制中心的檢查。通過多種終末質量考核手段來保證牙鉆滅菌達標。
3 討論
在進行牙鉆滅菌工作之初,由于工作量加大又是新生的事物,所以工作雜亂無章,存在許多問題,如滅菌不合格、不能保證門診的工作、牙鉆丟失等。在不斷的探索與總結中,根據實際工作情況制訂和規范各項工作制度與流程,目前在未增加護理人員的情況下,完成了此項工作,每次滅菌均達標,并沒有丟失情況,確保了門診的需要,完全達到了牙鉆一人一用一滅菌的新標準。
[參考文獻]
[1]顧萍.口腔科門診醫院感染因素分析與管理對策[J].現代預防醫學,2007,34(1):92-93.
[2]林志潤,廖祥芳.清洗質量是保證消毒滅菌效果的關鍵[J].中華醫院感染學雜志,2008,18(11):1647.
[3]徐巖英,LP.圣曼雅克,郭傳檳.口腔醫院感染控制的原則與措施[M].北京:北京醫科大學、中國協和醫科大學聯合出版社,1998:78-81.
[4]Cafruny WA, Brunick A, NelsonDM, et al. Effectiveness of ultrasonic cleaning of dental instruments[J].Am J Dent,1995,8:152-156.
[5]雷松惠,楊小紅,朱秀娥.口腔科消毒隔離技術與醫院感染管理[J].中華醫院感染學雜志,2006,16(2):186.
凡屬黨委成員職權范圍內可以處理的一般問題,不提交黨委會討論。凡涉及多個單位和部門的重大問題,未經分管領導協調的,不提交黨委會討論。
二、凡屬重大問題,在提交黨委會討論和決策之前,應組織有關單位或部門承辦好調查研究、方案起草與分析論證等前期工作。
承辦單位或部門可以委托專家、專業服務機構或者其他有相應能力的組織完成專業性工作。
三、承辦單位或部門應當深入開展決策調研工作,全面、準確掌握決策所需的有關情況,廣泛聽取各有關方面的意見和建議,形成決策調研報告。
四、承辦單位或部門應當根據決策事項的性質和特點,提供科學、全面、務實的決策備選方案。對需要進行多方案比較研究的問題或者存在爭議經協商仍達不成一致意見的事項,應當根據不同的主張擬訂兩個以上決策備選方案。擬訂決策備選方案時不得有下列情形:
㈠所采集的信息失真或者過時;
㈡遺漏必要的信息;
㈢隱瞞、歪曲真實情況;
㈣泄露需要保密的信息。
五、承辦單位或部門應當對決策備選方案的科學性、必要性、可行性、合法性進行充分論證。必要時,應當進行風險預測和成本效益分析。
六、涉及下列事項的決策備選方案,必須事先通過專家咨詢論證并提出具體意見,才能提交黨委會討論:
㈠全鎮經濟和社會發展的中長期規劃;
㈡事關經濟和社會發展的全局性問題;
㈢涉及群眾切身利益的重大政策問題;
㈣專業性較強的決策事項。
專家咨詢論證活動,一般由分管領導牽頭負責,承辦單位或部門具體組織實施,并嚴格保證專家咨詢論證活動的獨立性。
七、第六條所列㈠至㈢事項的決策備選方案,在提交黨委會討論之前,除涉及黨和國家秘密、商業秘密和個人隱私的事項外,承辦單位或部門應當采取座談會等方式,充分聽取相關部門和群體的意見,并將意見及采納情況形成報告。
對特別重大的問題,必要時可由書記、副書記及有關黨委成員組織專題會議聽取意見。
八、提交黨委會討論的重大問題,應當報送以下資料:
㈠決策備選方案及相關說明;
㈡專家論證意見;
㈢相關部門和群體意見的綜合報告;
㈣有關相同或相似項目的有關資料;
㈤有關的法律、法規和政策規定,特別是禁止性規定;
㈥風險預測和成本效益分析報告。
九、黨委會會議的召開時間、議題,一般應提前通知出席和列席人員,同時送達會議有關資料(干部任用材料除外)。
會議通知及有關資料送達后,各位黨委成員應認真閱讀,列出討論發言提綱。
十、提交黨委會討論的議題,由相關黨委成員在會上作主題匯報,回答提問,并首先表明個人傾向意見。相關分管領導可作補充說明。
會議應安排足夠的時間對議題進行充分討論。
會議出席人員應當對議題發表個人傾向意見,并說明理由,列席人員一視同仁。
會議主持人應當對討論情況作總結歸納發言。
十一、討論后,由會議主持人集中討論意見,提出決定方案或意見,或決定對議題進行表決或暫緩表決。
進行表決的,表決結果由會議主持人當場宣布。
如遇重大分歧,雙方人數接近,除在緊急情況下必須表決并按多數人的意見執行外,一般應暫緩表決,待進一步調查研究、交換意見后,再提交討論和表決。
十二、黨委辦公室要做好黨委會會議記錄,并編發會議紀要。會議紀要應當包括以下主要內容:
㈠會議時間、地點、主持人、出席人員、缺席人員、列席人員和記錄人員等基本情況;
㈡決策事項以及主要問題;
㈢審議過程及出席人員、列席人員的意見和表態;
㈣表決結果。
十三、對會議決定的事項,黨委辦公室應向有關單位發出書面通知。
十四、會議紀要和決定事項通知,以及其他經會議討論通過的、以黨委名義上報或者下發的文件,由書記或書記委托副書記簽發。
十五、黨委辦公室建立黨委會議事決策檔案。
檔案材料包括:會議記錄,會議紀要,決定事項通知,其他經會議討論通過的、以黨委名義上報或者下發的文件,以及決策執行過程中涉及執行評估、督促檢查、公眾監督、反饋修正等有關材料。
十六、與會人員必須嚴格遵守會議紀律,對會議未定事項、決定不對外公開的事項以及會議討論情況,不得向外傳播和泄露。
十七、黨委會決定的事項,原則上由相關黨委成員負責組織實施。涉及跨分管工作范圍的,由書記明確其中一位委員負責。
十八、有關執行單位應當全面、及時、正確地貫徹執行黨委會的決策,不得拒不執行、不完全執行、變更執行、推諉執行、拖延執行。
因不可抗力或決策所依賴的客觀條件發生變化,導致決策目標全部或部分不能實現的,應當及時向黨委報告,并提出停止執行、暫緩執行或修正決策的建議。
十九、黨委辦公室負責對決策執行情況的檢查、督辦等工作,并及時向黨委會報告督查情況。
二十、公民、法人或者其他組織認為黨委會決策應當停止執行或修正的,可以向黨委會成員、黨委辦公室或決策執行單位提出質疑或建議。
【關鍵詞】數控加工;效率;提升
1數控設備的正確選型
為保證加工效率的提高,產品質量和精度的提升,需根據產品的特點來選擇合適的數控設備,設備的選型是一個非常謹慎的工作,是否得當,對后續的適用價值和全面管理起著決定性的作用。以湘電集團長沙水泵廠典型零件三聯泵中凝水增壓泵泵體、泵蓋和葉輪的鏜削加工,以及循環泵的葉輪葉片、輪轂的加工為例來選擇設備。1.1確定數控設備需承擔的主要任務設備主要用于三聯泵中凝水增壓泵泵體、泵蓋和葉輪的鏜削加工,以及循環泵的葉輪葉片、輪轂的加工。凝水增壓泵為雙聯立式中開泵,由凝水泵和增壓泵組成。其加工精度的高低,直接影響泵的各項技術性能指標。泵體、泵蓋和軸承體的各項技術要求能否達到要求,是其產品質量能否得到保證的關鍵。循環泵為立式軸流泵,主要由循環泵轉子、上下泵體、上下泵蓋、上部橡膠軸瓦、下部橡膠軸瓦、兩半導向器、密封環、進水部分、波紋補償器、防蝕護板等組成。精度等級高、異形曲面,加工難度大。1.2分析加工零件的特點及要求凝水增壓泵的泵體、泵蓋是多蝸室結構,泵體、泵蓋和軸承體中需加工的內圓、端面和定位槽數量多,各部位的位置精度要求高,各內圓的加工范圍從Φ120mm至Φ608mm尺寸不一,精度等級從6級至11級不等,各蝸室的同軸度及端面的跳動值要求0.05mm,表面粗糙度要求最高值達Ra1.6。其中,多處有配合要求的內圓表面還要切槽,且在同一位置上,泵體上槽比泵蓋上槽深,因此,更增加了加工的難度。如導葉蝸室內圓為基孔制配合(Φ608H9+0.175),槽表面粗糙度值為Ra3.2,由于泵體各蝸室(蝸室形狀為曲面)鑄造后需要再加工,在加工過程既要軸向進刀,又需要徑向進刀。同時在加工過程中,還要保證各蝸室及端面的同軸度與跳動值在允許的公差范圍內。由此在數控設備中五軸聯動加工中心因一次裝夾定位,能保證零件各尺寸加工精度和形位公差,從而滿足圖紙要求。1.3設備選型通過對國內外五軸聯動加工中心生產廠家進行調研,國內調研廠家為沈陽機床集團,國外調研廠家為德國的德瑪吉和意大利廠家。通過與生產廠家或其商進行當面交流與電郵、電話聯系,對各生產廠家的產品情況有了一定程度的了解,在結合公司產品的實際需要,設備選型情況如下表所示:1.4確定主要技術參數工作臺尺寸:≥1500×1500mm;主軸最高轉速:>4000r/min;Z軸最大行程:>1000mm;Y軸最大行程:>2000mm;X軸最大行程:>2000mm;X軸定位精度:<0.05mmY軸定位精度:<0.025mm;Z軸定位精度:<0.03mmA軸定位精度:<5";C軸定位精度:<5";X軸重復定位精度:<0.025mm;Y軸重復定位精度:<0.015mm;Z軸重復定位精度:<0.015mm;A軸重復定位精度:<3";C軸重復定位精度:<31.5確定主要功能和配置五軸聯動加工中心是龍門式結構,能實現自動對刀功能,高精度原裝進口導軌和絲桿保證了設備的加工精度,機床除具有銑、鏜、鉆孔、擴孔等基本加工功能外,配套高精度數控回轉工作臺、數控銑頭、數控平旋盤等功能部件,可減少加工過程中的干涉現象,實現泵體內臺階面及內外圓的加工,同時可以實現曲面加工。機床可配帶定時定量自動冷卻系統,滑枕端面可以安裝各種功能附件,并能自動更換功能附件。通過一連串的分析和確認,層層管控到位,最終選定的數控設備將會滿足生產的需求,達到高質、高效生產。
2設備的維護、維修及保養
2.1數控設備的維護數控設備的維護包括:預防性維護,以保證機床的正常運行;故障性維修,消除故障,恢復設備的正常運行;對老的數控機床進行改造,充分提高設備的使用效率。在條件允許下,改善數控加工車間或數控設備周邊的環境條件,防高溫,防灰塵,減少數控機床的故障率,提高其生產效率。2.2數控機床維修注意事項(1)從整機上取出模塊時,應注意記錄其相對應的位置,連接的電纜號,對于固定安裝的線路板,還應按前后取下相應的壓接部件及螺釘作記錄。(2)維修時電烙鐵應放在順手的前方,遠離維修線路板。烙鐵頭應作適當的修整,以適應集成電路的焊接,并避免焊接時碰傷別的元器件。(3)線路板測量時應找到相應的焊點作為測試點,不要鏟除焊膜,有的板子全部刷有絕緣層,則只有在焊點處用刀片刮開絕緣層。(4)測量線路間的阻值時,應斷電源,測阻值時應紅黑表筆互換測量兩次,以阻值大的為參考值。
(5)不應隨意切斷印刷線路。數控設備上的線路板大多是雙面金屬孔板或多層孔化板,印刷線路細而密,一旦切斷不易焊接,且切線時易切斷相鄰的線。(6)查清線路板的電源配置及種類,根據檢查的需要,可分別供電或全部供電。應注意高壓,有的線路板直接接入高壓,或板內有高壓發生器,需適當絕緣,操作時應特別注意。
3數控加工工藝優化
3.1分析零件的工藝性根據設計圖紙應分析尺寸標注方法、零件圖的完整性與正確性、零件精度要求、零件材質及零件的結構等技術要求。3.2擬定零件的工藝過程注意表面加工方法的選擇,要保證加表面的加工精度和表面粗糙度的要求,同時應考慮生產率和經濟性的要求,根據產品的結構和產品的數量,盡量采用高效率的先進加工方法,正確選用加工設備。3.3劃分加工階段加工階段分粗加工階段、半精加工階段、精加工階段,中間根據需要還要進行熱處理及著色、探傷等要求。粗加工階段,高效地切除加工表面上大部分的余量,使毛坯在形狀和尺寸上接近零件成品;半精加工階段,減小粗加工后留下的誤差,使被加工工件達到一定精度,為精加工作準備,并完成一些次要表面的加工(如鉆孔、攻螺紋、銑鍵槽);精加工階段,保證各主要表面達到圖樣規定的質量要求。3.4切削用量的確定切削用量是切削時各運動參數的總稱,包括切削速度、進給量和背吃刀量(切削深度)。切削速度vc是指刀具切削刃上選定點相對于工件待加工表面在主運動方的瞬時速度單位為M/min。進給量f是指在主運動每轉一轉或每一行程時(或單位時間內),刀具與工件之間沿進給運動方向的相對位移,單位mm/s。背吃刀量(切削深度)ap,是指待加工表面與已加工表面之間的垂直距離,單位mm。
4刀具、夾具的正確選擇
IT之家7月7日消息今天晚上微信公眾平臺推出了“公眾號數據助手”官方小程序,“公眾號數據助手”官方小程序面向公眾號管理員、長期運營者和短期運營者,支持公眾號管理員及運營者在手機端更方便、及時地查看運營數據。
已注冊或綁定公眾號的用戶打開小程序首頁可直接在列表中選擇公眾號登錄。登錄后點擊帳號頭像可以返回首頁列表切換公眾號。
功能方面,支持查看公眾號的實時粉絲數據,當天粉絲數據變化即時可查,支持查看歷史粉絲增長趨勢。包括每日粉絲總數及新增和取消關注人數,可區分新增粉絲來源。
關鍵詞:PCI總線設備驅動程序WDM模式DriverStudio
PCI總線規范是為提高微機總線的數據傳輸速度而制定的一種局部總線標準。在設計自行開發的基于PCI總線的數據傳輸設備時,需要開發相應的設備驅動程序。通常開發PCI設備驅動程序有多種模式,在Windows2000環境下,主要采用WDM模式。本文針對自行開發的基于PCI總線的CCD視頻信號傳輸控制卡,編寫了符合WDM模式的驅動程序。
1WDM模式驅動程序
1.1WDM模式(WindowsDriverModel)
Windows2000對驅動程序的編寫不再基于以往的Win3.x和Win9x下的VxD(虛擬設備驅動程序)結構,而是基于一種新的驅動模型——WDM(WindowsDriverModel)。
WDM為Windows98/2000/XP操作系統的設備驅動程序的設計提供了統一的框架。WDM來源于WindowsNT的分層32位設備驅動程序模型(layered32-bitdevicedrivermodel)。它支持更多的特性,如即插即用(PnP)、電源管理、WMI和NT事件。
1.2設備驅動程序
設備驅動程序是操作系統的一個組成部分,它由I/O管理器(I/OManager)管理和調動。Windows2000操作系統下的I/O管理器功能描述如圖1所示。
I/O管理器每收到一個來自用戶應用程序的請求就創建一個I/O請求包(IRP)的數據結構,并將其作為參數傳遞給驅動程序。驅動程序通過識別IRP中的物理設備對象(PDO)來區別是發送給哪一個設備。IRP結構中存放請求的類型、用戶緩沖區的首地址、用戶請求數據的長度等信息。驅動程序處理完這個請求后,在該結構中填入處理結果的有關信息,調用IoCompleteRequest將其返回給I/O管理器,用戶應用程序的請求隨即返回。訪問硬件時,驅動程序通過調用硬件抽象層的函數實現。
1.3DriverStudio工具簡介
NuMegaLab公司開發的DriverStudio是一整套開發、調試和檢測Windows平臺下設備驅動程序的工具軟件包。它把DDK(DeviceDevelopmentKit)封裝成完整的C++函數庫,根據具體硬件通過向導生成框架代碼,并且提供了一套完整的調試和性能測試工具SoftICE、DriverMonitor等。
2應用實例
本文利用PCI專用接口芯片PCI9052設計了一個數據傳輸控制卡。卡上主要的芯片有PCI9052、FIFO(CY7C4221)、CPLD(MAX7064S)和A/D轉換器(MAX1197)。傳輸卡硬件框圖如圖2所示。面陣CCD得到的視頻信號經過調理電路,生成的視頻調理信號通過A/D轉換器進行數字化處理,送入FIFO中。在CPLD的控制下,數據經過PCI9052送入PCI總線,再傳送到計算機內存中,并顯示在監視器上。驅動程序必須實現如下幾個基本功能:(1)硬件中斷;(2)能支持應用程序獲取數據;(3)能根據外部FIFO(CY7C4221)的狀態啟動或停止突發傳輸。
在數據輸入過程中,最重要的是對數據進行實時控制,因此需要硬件中斷。在中斷程序中,根據外部FIFO狀態完成數據的讀入。
2.1用DriverWizard生成驅動程序框架
DriverStudio中的DriverWorks軟件為開發WDM程序提供了一個完整的框架。它包含一個可快速生成WDM驅動程序框架的代碼生成向導工具DriverWizard,而且還帶有許多類庫。在用DriverWizard生成的程序框架中寫入相對于設備的特定代碼,編譯后即可得到所需的驅動程序。
在利用DriverWorksV2.7的向導DriverWizard完成驅動程序的框架時共有11個步驟,其中關鍵步驟有:
(1)在第四步中選中PCI,并在VendorID和DeviceID中分別輸入廠商號和設備號,還需填入PCISubsystemID和PCIRevisionID。這四項可以用網上的免費軟件PCITree或PCIView瀏覽PCI設備,用這兩個軟件也可以得到BAR0~BAR5的資源分配情況和中斷號。
(2)第七步IRP隊列排隊方法,它決定了驅動程序檢查設備的方式。本設計選SystemManaged,則所有的IRP排隊都由系統(即I/O管理器)完成。
(3)第九步是最關鍵的一步。首先在Resources中添加資源,在name中輸入變量名,在PCIBaseAddress中輸入0~5的序列號。0~5和BAR0~BAR5一一對應。在設置中斷對話框中,在name欄寫入中斷服務程序的名稱,選中創建中斷服務程序ISR?穴CreateISR?雪,不選創建延遲程序調用DPC(CreateDPC),選中MakeISR/DPCclassfunctions,使ISR/DPC成為設備類的成員函數。
其次選中Buffer以選取讀寫方式,用于描述與I/O操作相關的數據緩沖區。本設計需要快速傳送大量數據,因此采用DirectI/O方式。
(4)在第十步中,需要加入與應用程序或者其他驅動程序通信的I/O控制代碼參量。
2.2驅動程序模塊框圖和代碼分布
PCI設備驅動程序模塊包括配置空間的訪問模塊、IO端口模塊、內存讀寫模塊和終端模塊等。各模塊之間是對等的。驅動程序模塊框圖如圖3所示。
驅動程序初始化模塊代碼段放在#pragmacode_seg(″INT″)和#pragmacode_seg()之間。在系統初始化完成后,這部分代碼從內存中釋放,防止占用系統寶貴的內存資源。#pragmacode_seg()之后是驅動程序和系統的許多模塊的實現部分。這部分在驅動程序運行后不會從內存中釋放。
2.3驅動程序主要模塊的實現
(1)配置空間的訪問模塊
DriverWorks的KPciConfiguration類封裝了訪問PCI設備配置空間的所有操作。首先初始化這個類的實例:
KpciConfigurationPciConfig()m_Lower.TopOfStack());
/?觹m_Lower是KpnpLowerDevice類的對象。m_LowerTopOfStack()返回當前設備堆棧頂部的設備對象。*/
初始化完后可以直接利用成員函數ReadHeader/WriteHeader函數訪問所有的配置寄存器。
為了確定映射空間的類型和大小,先向目標基地址寄存器寫入0Xffffffffh,然后回讀該寄存器的值。如果最低位為1,表示映射于I/O空間,反之為存儲空間;如果映射于存儲空間,從第四位開始計算0的個數可以確定內存空間的大小;如果是I/O方式,從第二位開始計算0的個數可確定I/O空間的大小,最大為256字節。如果設備的存儲空間超過256字節,要實現設備的整個存儲部分的訪問,就必須采用內存映射。
(2)I/O操作模塊
Driverworks的KIoRange類封裝了I/O端口訪問的操作。部分代碼如下:
{……
KIORangeDevIoPort();//創建實例
NTSTATUSstatus=DevIoPort().Initialize(pResListTranslated,pResListRaW,PciConfig.BaseAddressIndexToOrdinal(0));
/*第一個參數為轉換后的資源列表指針;第二個參數為原始資源列表指針;第三個參數中的0為I/O口對應的基地址,用來轉換成特定端口資源的序數?*/
If(NT_SUCCESS(status))
{……
DevIoPort.inb(0,LineBuf1,10);
/*成功初始化后可分別用KIoRange類的成員函數inb(/outb)從端口中讀/寫字節*/
}
else{Invalidate();returnstatus;
/*未能初始化成功,錯誤信息在status中*/
{
……}
(3)內存讀寫模塊
DriverWorks的KMemoryRange類封裝了端口訪問的操作。
status=m_MemoryRange().Initialize(pResListTranslated,pResListRaw,PciConfig.BaseAddressIndexToOrdinal(0));
此函數的參數、意義及具體用法與I/O端口的操作基本相同。
內存對象也用來發送控制字,以控制CPLD的開始和停止等。實際上控制字是通過PCI9052發送的。該控制字地址已被映射成PCI的內存空間。所以定義一個指向內存空間的內存對象,通過該對象即可發送控制字。
(4)中斷模塊
在中斷模塊,首先要激活PCI9052中斷使能位,然后判斷硬件中斷響應是否產生,如果有,則進行突發傳輸,讀入FIFO中的數據。
BOOLEANTranCard::Isr_MyIrq(void)
{if(//中斷未產生)
{……
returnFALSE;}
else
{/*如果產生硬件中斷,設置命令寄存器,進行突發數據傳輸*/
returnTRUE;}
}
為了將硬件中斷與編寫的中斷服務程序連接在一起,采用InitializeAndConnect方法,部分代碼如下:
NTSTATUSTranCardDevice?押?押OnStartDevice(KIrpI)
{……
status=m_MyIrq.InitializeAndConnect(
pResListTranlated,
LinkTo(Isr_MyIrq),
This;)
……}
2.4驅動程序的調用
編寫驅動程序本身不是最終目的,最終目的是調用驅動程序管理資源,并為用戶應用程序使用。驅動程序加載以后,它的許多進程處于Idle狀態,實際上需要用戶應用程序去調用激活。應用程序利用Win32API直接調用驅動程序,實現驅動程序和應用程序的信息交互。
首先用CreateFile()打開設備,獲得一個指向設備對象的句柄。使用CreateFile函數時應注意:由于驅動程序是*.sys,所以第一個參數應該是這個設備對象的標志連接(symboliclink)。該標志連接名有一個設置數據文件搜索路徑的數字號,而這個數字號通常是零。如果這個連接名是″TranCard″,則傳遞給CreateFile的宇符串就是:″\\\\.\\TranCard0″。例如:
HANDLEhDevice=CreateFile(″\\\\.\\TranCard0″)GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL?,OPEN_EXISTING,0,NULL);
然后用DeviceIoControl()進行數據的傳送。最后用CloseHandle()關閉設備句柄。
下面是應用DeviceIoControl()程序片段。
{……
m_b=DeviceIoControl(hDevice,TRANCARD_IOCTL_
RECEIVE(buffer,sizeof,buffer,NULL,0,&buffersize,NULL);
……}
2.5驅動程序的調試
采用SoftICE、DriverMonitor作為調試工具,基本調試過程如下:(1)使用symbolloader加載驅動程序,然后使用SoftICE跟蹤調試,確認驅動程序正常加載;(2)對核心的中斷響應程序代碼,用SoftICE中的Genint命令產生虛擬中斷,單步跟蹤中斷;(3)硬件發送大量的數據,通過查看內存的數據,確認數據傳輸是否正確。