王巧玲,高 杰,陳婭荔
?
基于linux操作系統(tǒng)的多串口驅(qū)動(dòng)研究
*王巧玲1,高 杰2,陳婭荔1
(1.井岡山大學(xué)電子與信息工程學(xué)院,江西,吉安 343009 2.南昌大學(xué)共青學(xué)院信息工程系,江西,共青城 332020)
在介紹基于linux操作系統(tǒng)的多串口驅(qū)動(dòng)設(shè)計(jì)理論基礎(chǔ)上, 重點(diǎn)研究對(duì)多串口編程的技術(shù),實(shí)現(xiàn)基于tty的核心設(shè)計(jì),可作為實(shí)現(xiàn)串口終端設(shè)備集中管理、實(shí)時(shí)數(shù)據(jù)采集的服務(wù)器主板應(yīng)用。其特點(diǎn)是可以采用ARM平臺(tái),但完全兼容X86平臺(tái),用戶原來在X86 平臺(tái)下編寫linux操作系統(tǒng)的多串口驅(qū)動(dòng)的程序只需做一次重新編譯即可實(shí)現(xiàn)移植,達(dá)到基于Linux操作系統(tǒng)的多串口驅(qū)動(dòng)實(shí)時(shí)通訊的目的。
linux操作系統(tǒng);多串口驅(qū)動(dòng);tty核心
在Linux操作系統(tǒng)中串口的編程技術(shù)和DOS、Windows系統(tǒng)下的方法有所不同。本文較為詳細(xì)的敘述了在Linux操作系統(tǒng)中串口的驅(qū)動(dòng)編程技術(shù)。重點(diǎn)研究多串口驅(qū)動(dòng)通訊,本驅(qū)動(dòng)創(chuàng)新點(diǎn)可以通過自動(dòng)探測(cè)的方法測(cè)出當(dāng)前是什么類型的主板,可以讓bios往中斷狀態(tài)寄存器或其他保留的寄存器位中寫一個(gè)標(biāo)記即可,用于唯一標(biāo)記每一類主板。串口驅(qū)動(dòng)主要技術(shù)是在tty核心[1]的基礎(chǔ)上實(shí)現(xiàn)的,需要同時(shí)驅(qū)動(dòng)最多32個(gè)串口,板上的串口共用中斷號(hào),板上串口基地址連續(xù)。因此,通過合理的結(jié)構(gòu)體設(shè)計(jì)可以方便的實(shí)現(xiàn)。
串口驅(qū)動(dòng)本質(zhì)上也是字符設(shè)備驅(qū)動(dòng)[2-3],只是內(nèi)核根據(jù)其特殊的數(shù)據(jù)傳輸過程進(jìn)行封裝,將其文件操作(file_operation)封裝到tty核心(tty_io.c)中,由tty核心提供接口給應(yīng)用程序調(diào)用,tty核心還提供接口給線路規(guī)程和驅(qū)動(dòng)程序使用;……