国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2010-01-29 07:19:00郎寶華苗榮霞
電子設(shè)計(jì)工程 2010年5期
關(guān)鍵詞:指針打印機(jī)串口

郎寶華,苗榮霞

(西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安 710032)

基于某焊接設(shè)備存儲(chǔ)大量數(shù)據(jù)需要通過(guò)打印機(jī)輸出,但由于該設(shè)備及其配套的微型熱敏打印機(jī)只能英文打印,不能中文打印的問題,從而影響用戶閱讀。另外,原有的配套英文打印機(jī)具有打印速度緩慢、每一組數(shù)據(jù)間隔過(guò)大,浪費(fèi)紙張等缺點(diǎn)。因此,為了解決上述問題,根據(jù)實(shí)際工程項(xiàng)目應(yīng)用需要,提出一種基于ARM的英文轉(zhuǎn)中文的翻譯器設(shè)計(jì)方案,該設(shè)計(jì)是在原有設(shè)備和支持中文打印的熱敏打印機(jī)之間增加一塊以ARM[1]為核心的電路板作為英文轉(zhuǎn)中文的翻譯器,接收設(shè)備傳輸?shù)挠⑽臄?shù)據(jù),然后通過(guò)優(yōu)化算法轉(zhuǎn)換成中文,能夠邊接收邊打印輸出。該系統(tǒng)設(shè)計(jì)從實(shí)驗(yàn)結(jié)果來(lái)看,打印輸出效果良好,整個(gè)打印過(guò)程快速迅捷,每一組數(shù)據(jù)間隔可調(diào),能夠節(jié)省大量紙張。

1 系統(tǒng)硬件電路設(shè)計(jì)

翻譯器的系統(tǒng)結(jié)構(gòu)框圖如圖1所示,它主要包括供電電源、核心控制器LPC2214和雙串口接口以及啟動(dòng)和ISP控制接口等電路。該系統(tǒng)設(shè)計(jì)采用優(yōu)化的系統(tǒng)軟件算法,能夠節(jié)省大量硬件資源需求。由于數(shù)據(jù)量非常大且要求快速打印,通常情況會(huì)增加一塊容量很大的SRAM來(lái)接收英文數(shù)據(jù),然后再進(jìn)行比較翻譯打印輸出。而本系統(tǒng)由于采用了環(huán)形接收/發(fā)送緩沖區(qū)以及前后臺(tái)程序方式,這樣就無(wú)需增加SRAM,能夠?qū)崿F(xiàn)邊接收邊打印,而且系統(tǒng)硬件電路設(shè)計(jì)簡(jiǎn)單明了。

圖1 翻譯器的系統(tǒng)結(jié)構(gòu)框圖

1.1 供電電源電路

圖2給出了系統(tǒng)的供電電源電路,從圖中可看出電源輸入端只需一種12 V左右的電壓輸入,經(jīng)過(guò)7805首先降至5 V,以滿足通常5 V供電,而且還滿足低壓差的穩(wěn)壓器SPX1117的輸入要求。由于LPC2214需要2組電源電壓輸入:3.3 V和1.8 V,因此,5 V電壓再經(jīng)過(guò)SPX1117-3.3和SPX1117-1.8分別輸出3.3 V和1.8 V給LPC2214供電。另外,圖2中的VD1二極管是為防止反接電源燒毀電路而設(shè)計(jì)的[2]。

圖2 供電電源電路

1.2 LPC2214及其啟動(dòng)控制電路

LPC2214是PHILIPS公司生產(chǎn)的一款基于ARM7核的32位高性能處理器,應(yīng)用廣泛。其內(nèi)部包括256 KB的Flash和16 KB的SRAM,片內(nèi)的128位寬的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使得該處理器可以在高達(dá)60 MHz的工作頻率下運(yùn)行。此外,通過(guò)外部存儲(chǔ)器接口可將存儲(chǔ)器配置成4組,每組容量高達(dá)16 MB,此外,片內(nèi)還集成了多種外設(shè),包括雙串口、8路A/D采集通道、I2C接口和SPI接口、支持32個(gè)中斷請(qǐng)求的中斷控制,以及多達(dá)112個(gè)通用I/O口。由于集成度非常高,所以不必像51單片機(jī)那樣需擴(kuò)展很多的外部器件,大大簡(jiǎn)化了系統(tǒng)硬件電路設(shè)計(jì)。圖3給出英文轉(zhuǎn)中文翻譯器的核心控制器LPC2214的啟動(dòng)控制電路。在圖3中,LPC2214的P2.26和P2.27引腳均需外接一只上拉電阻,在系統(tǒng)復(fù)位后將從片內(nèi)Flash的地址0x00000000處開始運(yùn)行程序。另外P0.14引腳接有一只上拉電阻,用于禁止ISP[3](在系統(tǒng)編程),如果想要使能ISP,將跳線JP3短接即可。

圖3 LPC2214的啟動(dòng)控制電路

1.3 雙串口接口電路

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

圖4 雙串口接口電路

2 系統(tǒng)軟件算法

由于數(shù)據(jù)量非常大,所以在軟件設(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中可以直接定義與接收到的英文字符串相對(duì)應(yīng)的漢字常量字符串作為翻譯后的數(shù)據(jù)。其次,為了查找方便,對(duì)接收到的英文字符串分了3類,相應(yīng)地漢字字符串也對(duì)應(yīng)分為3類,如圖5所示。其中,庫(kù)1為包含“:”的英文行,對(duì)應(yīng)的中文翻譯只是翻譯“:”前的英文,而“:”后的英文字符和數(shù)字不必翻譯直接輸出;庫(kù)2為不包含“:”的英文行,直接將對(duì)應(yīng)的中文庫(kù)2輸出即可;庫(kù)3為含有多義語(yǔ)義的英文行庫(kù),在中文庫(kù)3中再細(xì)分后輸出。在具體編程時(shí)利用了二維數(shù)組結(jié)構(gòu)存儲(chǔ)中英文字庫(kù)[5]。

圖5 翻譯的中英文數(shù)據(jù)存儲(chǔ)方式

2.2 環(huán)形接收和發(fā)送緩沖區(qū)算法

設(shè)備傳輸?shù)臄?shù)據(jù)量很大,共有幾百組數(shù)據(jù),而每組數(shù)據(jù)又包含幾十行英文字符和數(shù)字,如果采用全部接收完設(shè)備傳輸?shù)臄?shù)據(jù)后再查找對(duì)應(yīng)的中文,找到后再依次控制打印機(jī)打印輸出,則不但需要相當(dāng)大的緩沖區(qū)用于存儲(chǔ),而且從接收數(shù)據(jù)開始到打印機(jī)輸出打印要延誤很長(zhǎng)時(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ù)后通過(guò)UART1控制打印機(jī)輸出打印且讀指針加1,當(dāng)讀指針到達(dá)最大存儲(chǔ)空間位置時(shí),令讀指針復(fù)位為起始存儲(chǔ)位置。實(shí)驗(yàn)表明,設(shè)置成很少的幾行接收和發(fā)送緩沖區(qū)都可以正常接收數(shù)據(jù)和打印數(shù)據(jù)。

圖6 環(huán)形接收和發(fā)送緩沖區(qū)

2.3 查找和翻譯算法

查找和翻譯算法是在主程序中進(jìn)行的,就是將接收和發(fā)送緩沖區(qū)中接收的每一行英文數(shù)據(jù)和三個(gè)英文庫(kù)中的存儲(chǔ)的英文行數(shù)據(jù)進(jìn)行比較,如果一致,就返回所在當(dāng)前英文庫(kù)中的行號(hào),然后根據(jù)行號(hào)再找到對(duì)應(yīng)的中文庫(kù)中的數(shù)據(jù)行號(hào)即可,最后就可以控制打印機(jī)按一定格式輸出打印。整個(gè)算法的流程如圖7所示。

圖7 查找和翻譯算法流程

3 實(shí)驗(yàn)結(jié)果

圖8給出了英文和中文打印效果的對(duì)比,由于數(shù)據(jù)量非常大,此處只是截取了很少的一段??梢钥闯鲋形拇蛴≥敵龇g準(zhǔn)確、格式整齊,字體大小合適。另外,由于選取了更快速的熱敏打印機(jī),從調(diào)試過(guò)程中可以明顯看出中文打印的速度遠(yuǎn)遠(yuǎn)快于原來(lái)配套的英文打印速度。

4 結(jié) 論

圖8 中英文打印效果對(duì)比

本系統(tǒng)實(shí)現(xiàn)的英文轉(zhuǎn)中文翻譯器在軟硬件方面都采取較好的方案,硬件集成度高,電路板尺寸小,軟件算法簡(jiǎn)潔,編程時(shí)除了啟動(dòng)代碼[6]采用匯編語(yǔ)言外其他大部分功能代碼均采用了模塊化的C語(yǔ)言編程,所以針對(duì)其他相關(guān)的應(yīng)用領(lǐng)域,在硬件和軟件上只需作相應(yīng)改動(dòng)即可方便實(shí)現(xiàn)。

[1]李佳.ARM系列處理器應(yīng)用技術(shù)完全手冊(cè)[M].北京:人民郵電出版社,2006.

[2]周立功.ARM嵌入式基礎(chǔ)應(yīng)用教程[M].北京:北京航空航天大學(xué)出版社,2005.

[3]周立功.ARM嵌入式軟件開發(fā)實(shí)例(一)[M].北京:北京航空航天大學(xué)出版社,2004.

[4]SIPEX.SP3232E Datasheet[EB/OL].(2008)[2009-10-12]..http://www.zlgmcu.com/Sipex/guide/DataCables2002_cn.pdf.

[5]陸玲,周航慈.嵌入式系統(tǒng)軟件設(shè)計(jì)中的數(shù)據(jù)結(jié)構(gòu)[M].北京:北京航空航天大學(xué)出版社,2008.

[6]王宇行.ARM程序分析與設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2008.

猜你喜歡
指針打印機(jī)串口
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
偷指針的人
為什么表的指針都按照順時(shí)針方向轉(zhuǎn)動(dòng)
另類3D打印機(jī)
打印機(jī)基板大型注塑模具設(shè)計(jì)
USB接口的多串口數(shù)據(jù)并行接收方法探索
FDM型混色3D打印機(jī)的設(shè)計(jì)
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
基于改進(jìn)Hough變換和BP網(wǎng)絡(luò)的指針儀表識(shí)別
復(fù)制粘貼打印機(jī)
建湖县| 平远县| 闻喜县| 黎城县| 甘谷县| 应城市| 米泉市| 开封市| 凯里市| 江城| 拜泉县| 平原县| 漳平市| 沐川县| 金昌市| 策勒县| 娄底市| 清水河县| 井陉县| 从江县| 东莞市| 大埔区| 罗甸县| 枞阳县| 拉孜县| 岚皋县| 卢氏县| 改则县| 杭锦后旗| 马山县| 乌苏市| 呼玛县| 桂东县| 建水县| 高邑县| 灵寿县| 盘山县| 河东区| 内丘县| 石棉县| 睢宁县|