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