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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的英文轉(zhuǎn)中文翻譯器設(shè)計(jì)

          基于ARM的英文轉(zhuǎn)中文翻譯器設(shè)計(jì)

          作者: 時(shí)間:2010-07-27 來源:網(wǎng)絡(luò) 收藏


          1.3 雙串口接口電路
          LPC2214包含2個(gè)串行接口,分別為UART0和UARTl,恰好符合該系統(tǒng)應(yīng)用要求,這2個(gè)串行接口分別與設(shè)備和打印機(jī)相連。由于設(shè)備和打印機(jī)都要求標(biāo)準(zhǔn)的RS232串行傳輸,而LPC2214是3.3V電平,所以使用了2片SP3232E進(jìn)行RS232電平轉(zhuǎn)換,如圖4所示。LPC2214通過端子J2的CTSl信號(hào)檢測打印機(jī)存在并通過端子Jl的DTR信號(hào)通知設(shè)備;而通過端子J2的RXDl(BUSY)信號(hào)檢測打印機(jī)內(nèi)部緩沖區(qū)是否溢出;當(dāng)LPC2-214內(nèi)部接收緩沖區(qū)存滿時(shí),通過端子J1的CTS信號(hào)通知設(shè)備暫停傳輸數(shù)據(jù)。

          2 系統(tǒng)軟件算法
          由于數(shù)據(jù)量非常大,所以在軟件方面進(jìn)行了優(yōu)化,主要包括中數(shù)據(jù)存儲(chǔ)方式、環(huán)形接收和發(fā)送緩沖區(qū)算法、查找和算法等3部分。
          2.1 中數(shù)據(jù)存儲(chǔ)方式
          首先,轉(zhuǎn)器涉及到的問題是漢字在計(jì)算機(jī)內(nèi)的存儲(chǔ)問題,漢字在計(jì)算機(jī)內(nèi)的存儲(chǔ)是以機(jī)內(nèi)碼形式存儲(chǔ)的,1個(gè)漢字占用2個(gè)字節(jié),因此在LPC2214中可以直接定義與接收到的英文字符串相對應(yīng)的漢字常量字符串作為后的數(shù)據(jù)。其次,為了查找方便,對接收到的英文字符串分了3類,相應(yīng)地漢字字符串也對應(yīng)分為3類,如圖5所示。其中,庫l為包含“:”的英文行,對應(yīng)的翻譯只是翻譯“:”前的英文,而“:”后的英文字符和數(shù)字不必翻譯直接輸出;庫2為不包含“:”的英文行,直接將對應(yīng)的庫2輸出即可;庫3為含有多義語義的英文行庫,在中文庫3中再細(xì)分后輸出。在具體編程時(shí)利用了二維數(shù)組結(jié)構(gòu)存儲(chǔ)中英文字庫。

          2.2 環(huán)形接收和發(fā)送緩沖區(qū)算法
          設(shè)備傳輸?shù)臄?shù)據(jù)量很大,共有幾百組數(shù)據(jù),而每組數(shù)據(jù)又包含幾十行英文字符和數(shù)字,如果采用全部接收完設(shè)備傳輸?shù)臄?shù)據(jù)后再查找對應(yīng)的中文,找到后再依次控制打印機(jī)打印輸出,則不但需要相當(dāng)大的緩沖區(qū)用于存儲(chǔ),而且從接收數(shù)據(jù)開始到打印機(jī)輸出打印要延誤很長時(shí)間。因此,這里采用前后臺(tái)程序方式即邊接收、邊查找、邊打印,該方式既節(jié)省時(shí)間又節(jié)省存儲(chǔ)空間。在系統(tǒng)中開一段存儲(chǔ)空間作為接收緩沖區(qū),如圖6所示。設(shè)置2個(gè)指針:寫指針和讀指針,初始化時(shí)令這2個(gè)指針分別指向存儲(chǔ)區(qū)的起始位置。接收設(shè)備數(shù)據(jù)采用UART0串口接收中斷處理方式,以便不丟失設(shè)備發(fā)送的任何一個(gè)字符。在UART0每接收一行英文數(shù)據(jù)后,寫指針加1,當(dāng)寫指針達(dá)到最大存儲(chǔ)空間位置時(shí),令寫指針復(fù)位為起始存儲(chǔ)位置,這樣就形成一個(gè)環(huán)形緩沖區(qū)。當(dāng)接收緩沖區(qū)非空,即有需要翻譯的英文行數(shù)據(jù)時(shí),讀指針指向當(dāng)前需要翻譯的英文行數(shù)據(jù),和寫指針類似,每翻譯一行數(shù)據(jù)后通過UARTl控制打印機(jī)輸出打印且讀指針加1,當(dāng)讀指針到達(dá)最大存儲(chǔ)空間位置時(shí),令讀指針復(fù)位為起始存儲(chǔ)位置。實(shí)驗(yàn)表明,設(shè)置成很少的幾行接收和發(fā)送緩沖區(qū)都可以正常接收數(shù)據(jù)和打印數(shù)據(jù)。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();