<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于uClinux的嵌入式多功能信息交互終端

          基于uClinux的嵌入式多功能信息交互終端

          作者: 時間:2012-04-20 來源:網絡 收藏

          鍵盤的實現

          鍵盤的實現有兩種方案—采用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í)行采集任務,然后將采集的數據交與數據庫處理,完成后等待新的按鍵事件。

          結 論

          采用性能可靠 操作系統(tǒng)作為MIIT 的操作系統(tǒng),無疑確保了程序的可靠性、簡化了軟件實現的復雜程度。在MIIT 系統(tǒng)上關鍵技術的實現,解決了MIIT 中的鍵盤輸入、Linux 串口數據采集、特定應用程序等問題,為MIIT能夠在家電、工業(yè)控制等領域得到應用和發(fā)展奠定了一定的理論和實踐基礎。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();