基于ARM9和Linux的嵌入式打印終端系統(tǒng)
同時(shí)查看打印機(jī)的電路手冊(cè)和管腳定義,選用其STB選通線(xiàn)、ACK回答脈沖線(xiàn)、BUSY線(xiàn)、DATA0-DATA7數(shù)據(jù)線(xiàn)來(lái)與開(kāi)發(fā)板的GPIO口相連,并初始化高低電平值。為了避免接線(xiàn)過(guò)緊互相干擾,制作一個(gè)接口板定義各引腳連接如圖3所示。
至此,硬件的電路設(shè)計(jì)及連接基本完成。
3嵌入式打印終端系統(tǒng)的軟件設(shè)計(jì)
軟件平臺(tái)采用的是基于2.4內(nèi)核的嵌入式Linux系統(tǒng)。采用的交叉編譯器工具包為CROSS2.95.3.tgz(包含arm-linux-gcc等)。
3.1 打印機(jī)驅(qū)動(dòng)的編寫(xiě)
Linux的設(shè)備分為塊設(shè)備,字符設(shè)備和網(wǎng)絡(luò)設(shè)備,該系統(tǒng)使用到的微型打印機(jī)屬于字符設(shè)備,下面將具體說(shuō)明如何設(shè)計(jì)打印機(jī)驅(qū)動(dòng)。
3.1.1 定義設(shè)備名
#define DEVICE_NAME weida_printer
3.1.2 模塊函數(shù)設(shè)計(jì)
在該系統(tǒng)中,采用模塊化加載驅(qū)動(dòng)程序的方法,因此必須實(shí)現(xiàn)模塊的初始化函數(shù)和卸載函數(shù)。采用devfs方式注冊(cè)打印機(jī)。
初始化函數(shù)weida_init通過(guò)devfs_register函數(shù)向系統(tǒng)注冊(cè)設(shè)備。
函數(shù)原型devfs_register(NULL, DEVICE_NAME, DEVFS_FL_DEFAULT, 0, 0, S_IFCHR | S_IRUSR | S_IWUSR, weida_printer_fops, NULL);
其中,DEVICE_NAME為主設(shè)備名,weida_printer_fops為定義的一個(gè)數(shù)據(jù)結(jié)構(gòu),用來(lái)實(shí)現(xiàn)的文件操作,包括open、close、write等。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)linux相關(guān)文章:linux教程
三維掃描儀相關(guān)文章:三維掃描儀原理
評(píng)論