超聲波探傷系統(tǒng)驅(qū)動程序的重要性
超聲波探傷系統(tǒng)驅(qū)動程序工作在 Linux 操作系統(tǒng)的底層,負(fù)責(zé)為上層應(yīng)用程序提供良好的硬件抽象。Linux 操作系統(tǒng)為設(shè)備驅(qū)動的開發(fā)提供了一整套機(jī)制,尤其是模塊化驅(qū)動機(jī)制,允許動態(tài)加載和卸載可裝載模塊,極大地提高了設(shè)備驅(qū)動程序的開發(fā)和調(diào)試效率,甚至根本上改變了設(shè)備驅(qū)動程序的開發(fā)方法。Linux 設(shè)備驅(qū)動程序在開發(fā)過程中要按照操作系統(tǒng)提供的驅(qū)動設(shè)計(jì)接口,使用系統(tǒng)提供的功能函數(shù),這樣不僅可以為上層應(yīng)用程序提供統(tǒng)一和清晰的接口,也可以提高開發(fā)效率。
探傷系統(tǒng)的設(shè)備驅(qū)動程序都是字符型設(shè)備驅(qū)動,針對不同的硬件特性,分別用不同的模塊或程序?qū)崿F(xiàn)。根據(jù)數(shù)據(jù)平面和控制平面接口,可以分為探傷波形數(shù)據(jù)傳輸驅(qū)動程序、FPGA 參數(shù)配置驅(qū)動程序和 ARM 外圍設(shè)備驅(qū)動程序。根據(jù)各個(gè)設(shè)備驅(qū)動要求,使用了有針對性的開發(fā)和調(diào)試方法。系統(tǒng)設(shè)備驅(qū)動程序雖然代碼量并不大,但是其與硬件直接相關(guān),在整個(gè)系統(tǒng)軟件中占有重要地位。在設(shè)備驅(qū)動開發(fā)過程中要先完成系統(tǒng)工作中最基本的設(shè)備驅(qū)動,如數(shù)據(jù)平面的FIFO 驅(qū)動模塊,ARM 外圍設(shè)備驅(qū)動的鍵盤驅(qū)動和 LCD 驅(qū)動等,然后再完成控制平面接口的設(shè)備驅(qū)動。設(shè)備驅(qū)動程序開發(fā)的另一個(gè)特點(diǎn)是其開發(fā)完成后,如果硬件電路不修改,設(shè)備驅(qū)動也基本上不需要修改。
我們給出了基于 Linux 的設(shè)備驅(qū)動開發(fā)方法和流程,系統(tǒng)中設(shè)備驅(qū)動的設(shè)計(jì)和分類,研發(fā)了有代表性的 FIFO 驅(qū)動模塊、DacMax508 驅(qū)動模塊和基于幀緩沖的 LCD 設(shè)備驅(qū)動的實(shí)現(xiàn)。給出了系統(tǒng)設(shè)備驅(qū)動的測試方法。