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