基于uClinux的嵌入式多功能信息交互終端
鍵盤的實現
鍵盤的實現有兩種方案—采用I/ O (輸入/ 輸出)口或SPI(serial peripheral interface) 口。使用I/ O 口傳輸速度較快,但占用引腳較多,實現16 個按鍵的矩陣式鍵盤需要9 個引腳(4 個輸入、4 個輸出和1 個中斷請求) ; 用SPI 接口傳輸速度較慢,但只需要IN、OU T、CL K、CS0 、CLR 五個引腳。在主頻為66MHz的MCF5272 (Motorola 摩托羅拉) 之上,采用SPI 口基本滿足鍵盤傳輸速度的要求。
MIIT 鍵盤硬件電路通過兩片74LS164 級聯實現16 個按鍵。其中,164 的輸入引腳A 要與B 相連,再接QSPI 的引腳。另外,鍵盤電路工作時必須將164的CLR 引腳設置為低電平(低電平有效) 。
實現MIIT 鍵盤的SPI 口工作在主模式下。SPI口數據發(fā)送操作是通過向command RAM(命令) 中寫數據觸發(fā)的,經過8 位時鐘周期完成1 個字節(jié)的發(fā)送。鍵盤掃描碼作為輸入數據保留在transmit RAM (傳輸) 中,數據發(fā)送完畢后QIR(interrupt register) 自動置位,產生中斷。鍵盤掃描程序檢測到該中斷信息后,讀取Receive RAM(接收) 中的數據,而該數據就是t ransmit RAM 中的鍵盤掃描碼通過鍵盤電路處理后得到的鍵盤檢測值,軟件系統(tǒng)對該檢測值進行處理后得到鍵盤相應按鍵值。
基于uCLinux 的串口數據采集
基于uCLinux 的和停止位的設置) 、串口write 和read (讀寫) 、串口close (關閉) 等內容。數據采集程序實現上與windows操作系統(tǒng)下的串口通訊不一樣,其中有三點值得特別注意:
1) MIIT 只是通過串口傳輸數據,不需通過串口模擬終端通信,所以MIIT 串口采用了Raw Mode (原始模式) 方式。設置方式如下:
options. c-lflag = ~ ( ICANON | ECHO | ECHOE | ISIG) ( Input) ;
options. c-oflag = ~OPOST(Output) ;
2) 在設置串口時,發(fā)送方和接收方的波特率、效驗位和停止位要相同,否則雙方將不能通訊;
3) 為了防止所采集的數據出現亂碼,需要把串口控制字符集control characters 中的VTIME 和VMIN設置為0 和1 。0 表示打開串口后隨時接收數據;1 被當做逾時設定值為一字元。
特定應用程序的實現
應用程序主要包括系統(tǒng)設置、基礎數據、采集數據、網絡通訊和打印等。應用程序采用單任務的控制方式,軟件系統(tǒng)接到按鍵事件后執(zhí)行相關操作,如網絡通訊、打印等。例如,MIIT 在接到自動數據采集的按鍵命令后,執(zhí)行采集任務,然后將采集的數據交與數據庫處理,完成后等待新的按鍵事件。
結 論
采用性能可靠嵌入式uClinux 操作系統(tǒng)作為MIIT 的操作系統(tǒng),無疑確保了程序的可靠性、簡化了多功能信息交互軟件實現的復雜程度。在MIIT 系統(tǒng)上關鍵技術的實現,解決了MIIT 中的鍵盤輸入、基于Linux 串口數據采集、特定應用程序等問題,為MIIT能夠在信息家電、工業(yè)控制等領域得到應用和發(fā)展奠定了一定的理論和實踐基礎。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論