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

?

基于單片機(jī)的對(duì)講設(shè)備程序下載系統(tǒng)﹡

2013-09-17 12:30郭榮新
通信技術(shù) 2013年1期
關(guān)鍵詞:波特率U盤(pán)串口

郭榮新

(華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 廈門(mén) 361021)

0 引言

目前,對(duì)講設(shè)備程序更新大多是通過(guò) PC下載的方式,而沒(méi)有采用嵌入式開(kāi)發(fā)思想來(lái)下載更新對(duì)講設(shè)備。傳統(tǒng)的對(duì)講設(shè)備程序下載更新方法存在如下不足:首先 PC需具有串口,如果沒(méi)有串口則需要USB接口,而通過(guò)USB接口需要另外安裝USB轉(zhuǎn)串口驅(qū)動(dòng),這就導(dǎo)致下載軟件系統(tǒng)兼容性不好;另外必須在 PC上通過(guò)下載軟件下載更新,而且下載軟件操作繁瑣;另外對(duì)于車(chē)載對(duì)講設(shè)備程序更新,用笨重的 PC很不方便。為克服上述下載更新過(guò)程中的諸多不便,本文設(shè)計(jì)了一種更加便捷的程序下載系統(tǒng)。本方案中采用了嵌入式USB主機(jī)的設(shè)計(jì)思想,即利用單片機(jī)控制CH376通過(guò)USB接口讀取U盤(pán)中文件,再由單片機(jī)串口將文件下載到對(duì)講設(shè)備對(duì)其程序進(jìn)行更新。整個(gè)下載更新過(guò)程操作簡(jiǎn)便,只需要根據(jù)指示燈提示按一下按鍵即可完成全過(guò)程。另外本系統(tǒng)還具有結(jié)構(gòu)小巧、成本低廉、方便攜帶和可實(shí)現(xiàn)隨時(shí)隨地為對(duì)講設(shè)備升級(jí)等特點(diǎn)。

本系統(tǒng)是一種基于單片機(jī)的對(duì)講設(shè)備程序下載裝置,采用嵌入式系統(tǒng)架構(gòu),可實(shí)現(xiàn)對(duì)講設(shè)備程序的下載升級(jí)。本系統(tǒng)的主要目的是提供一種簡(jiǎn)單易行的程序升級(jí)的方法,尤其針對(duì)車(chē)載對(duì)講設(shè)備提供一種便攜的升級(jí)工具,避免了攜帶笨重的筆記本進(jìn)行升級(jí)的麻煩。

使用本系統(tǒng)時(shí),需要做的準(zhǔn)備工作如下:首先將待升級(jí)的文件拷貝到U盤(pán)中,然后將該U盤(pán)中的文件命名為L(zhǎng)T1000B.BIN。前面準(zhǔn)備工作就緒之后,即可對(duì)對(duì)講設(shè)備進(jìn)行批量升級(jí),升級(jí)方法如下:將上述U盤(pán)插在本系統(tǒng)的USB接口,對(duì)講設(shè)備與本系統(tǒng)連接好之后打開(kāi)本裝置,打開(kāi)對(duì)講設(shè)備,待最后一個(gè)LED亮?xí)r選擇按鍵1升級(jí)第一種類(lèi)型代碼文件,或者選擇按鍵2升級(jí)第二種類(lèi)型文件,升級(jí)結(jié)束后,本系統(tǒng)進(jìn)度LED指示燈全亮,并且本系統(tǒng)會(huì)通過(guò)蜂鳴器提示用戶升級(jí)結(jié)束。

1 硬件總體設(shè)計(jì)

對(duì)于非 PC類(lèi)的嵌入式系統(tǒng),必須通過(guò)嵌入式USB主機(jī)控制器來(lái)管理主機(jī)到設(shè)備的數(shù)據(jù)傳輸,本系統(tǒng)選用南京沁恒的U盤(pán)文件管理控制芯片CH376來(lái)實(shí)現(xiàn)。因?yàn)檎麄€(gè)USB協(xié)議框架非常復(fù)雜, 所以就需要MCU具有足夠的RAM, 用以處理大量的數(shù)據(jù)緩沖區(qū)、變量、數(shù)據(jù)存儲(chǔ)等等。其次系統(tǒng)要有大量的程序存儲(chǔ)區(qū),一般Flash的需求大概在10~60 kb[1]?;诔绦虼鎯?chǔ)容量和處理數(shù)據(jù)以及低功耗,后續(xù)擴(kuò)展的考慮,因此本系統(tǒng)采用宏晶科技的STC11L60XE單片機(jī)。

由于和本系統(tǒng)聯(lián)調(diào)的對(duì)講設(shè)備波特率要求為115 200 b/s,而波特率的計(jì)算公式[2]:

要達(dá)到如上波特率,采用串口工作方式2則需要7.372 8 MHz或者3.686 4 MHz的晶振;采用串口工作方式1,若設(shè)置SMOD為1,定時(shí)器工作方式為2,則由波特率計(jì)算公式可知:

若 TH1裝初值為 0xff(X=255),則socf 需選用22.118 4 MHz晶振。為了提高單片機(jī)的處理速度,本系統(tǒng)選用22.118 4 MHz的晶振。

單片機(jī)與 CH376的通訊接口采用并行總線連接。P0口與CH376的并口連接,P2.0連接CH376的并口地址輸入端,P2.1連接 CH376的片選端,WR和RD分別連接CH376并口寫(xiě)選通輸入和讀選通輸入,INT0連接CH376的中斷請(qǐng)求輸出,系統(tǒng)框圖如圖 1所示,圖中單片機(jī)采用宏晶科技的STC11L60XE單片機(jī),U盤(pán)管理芯片采用南京沁恒的CH376,穩(wěn)壓源有5 V穩(wěn)壓和3.3 V穩(wěn)壓。通過(guò)系統(tǒng)框圖可知系統(tǒng)主要由CH376模塊、MCU模塊和穩(wěn)壓源模塊組成。

2 軟件總體設(shè)計(jì)

為了使設(shè)計(jì)的嵌入式 USB主機(jī)系統(tǒng)具有通用性,整個(gè)系統(tǒng)的軟件設(shè)計(jì)不依賴于任何操作系統(tǒng)[2]。在建立起相應(yīng)的硬件連接后,就可以根據(jù)不同的硬件特點(diǎn),選用不同的開(kāi)發(fā)工具和開(kāi)發(fā)語(yǔ)言進(jìn)行USB host的軟件設(shè)計(jì)工作[3]。程序采用 C 語(yǔ)言編寫(xiě),因此可以很方便地移植到其它處理器中[4]。整個(gè)下載過(guò)程遵循聯(lián)拓公司制定的程序更新下載協(xié)議如圖2所示。

圖1 系統(tǒng)框圖

圖2 USB host與對(duì)講設(shè)備信息交換協(xié)議

由于串口波特率為115 200 b/s,也就是當(dāng)單片機(jī)接收串口數(shù)據(jù)時(shí),大約每69.4 μs串口中斷就會(huì)響應(yīng)一次。按照協(xié)議要求每次需要比較至少22個(gè)字符,共有6種字符串,如果每收到一個(gè)字符就比較一次,那么單片機(jī)就難以及時(shí)處理每個(gè)字符。下面以第一個(gè)字符串的比較過(guò)程舉例。外部中斷的最短響應(yīng)時(shí)間為 3個(gè)機(jī)器周期,其中中斷請(qǐng)求標(biāo)志位查詢占1個(gè)機(jī)器周期,而這個(gè)機(jī)器周期恰好是處于指令的最后一個(gè)機(jī)器周期,在這個(gè)機(jī)器周期結(jié)束后,中斷即被響應(yīng),CPU接著執(zhí)行 1條硬件子程序調(diào)用指令LCALL以轉(zhuǎn)到相應(yīng)的中斷服務(wù)程序入口,則需要2個(gè)機(jī)器周期[5]。判斷是否是串口接收字符引起的中斷,需要2個(gè)機(jī)器周期。RI清零需要1個(gè)機(jī)器周期,將SBUF值暫存到變量需要2個(gè)機(jī)器周期,將變量值在存到數(shù)組中需要2個(gè)機(jī)器周期[6]。判斷是不是結(jié)束符0x0a與0x0d至少需要4個(gè)機(jī)器周期,判斷處于哪個(gè)發(fā)送階段需要比較至少需要 2個(gè)機(jī)器周期(如果是最后一個(gè)字符串需要比較四次即 8個(gè)機(jī)器周期),RETI指令需要 2個(gè)機(jī)器周期,判斷接收字符數(shù)是否超過(guò)緩存需要 2個(gè)機(jī)器周期。由于本系統(tǒng)選用的是22.118 4 MHz的晶振,所以一個(gè)機(jī)器周期為0.54 μs。比較指令執(zhí)行執(zhí)行時(shí)間為 2個(gè)機(jī)器周期,如果每次收到一個(gè)字符就比較一次綜上所述那么當(dāng)收到第52個(gè)字符時(shí)需要的機(jī)器周期至少需要(3+2+1+2+2+4+8+2+2+52×2)×0.54 μs=70.2 μs。很明顯大于 69.4 μs,如果采用這種思路會(huì)導(dǎo)致丟失字符的錯(cuò)誤。為避免該錯(cuò)誤的出現(xiàn),本方案中串口中斷服務(wù)程序采用的方法是將收到的字符暫存起來(lái)之后先判斷處于哪個(gè)階段,再判斷該階段的字符串是否已經(jīng)接收完畢,接收完畢再比較。

3 結(jié)語(yǔ)

本文整個(gè)系統(tǒng)經(jīng)過(guò)與福建聯(lián)拓科技公司生產(chǎn)的對(duì)講設(shè)備聯(lián)試后效果良好,該模塊也可通過(guò)修改通信協(xié)議用于所有市面上流行的對(duì)講機(jī),應(yīng)用前景廣泛。本文作者創(chuàng)新之處在于:將下載軟件移植到單片機(jī)控制的USB主機(jī)系統(tǒng),將USB host技術(shù)應(yīng)用于對(duì)講設(shè)備程序升級(jí),為寫(xiě)頻軟件移植到該系統(tǒng)提供了很好的思路。

[1] 溫晶晶.嵌入式 USB主機(jī)的相關(guān)設(shè)計(jì)[J].機(jī)械工程與自動(dòng)化, 2006(05):98-100.

[2] 張軍偉,羅紅,喬向東.基于文件過(guò)濾的移動(dòng)存儲(chǔ)設(shè)備實(shí)時(shí)監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].通信技術(shù),2009,42(02):283-285.

[3] 董瑋,周魯寧.基于USB的無(wú)線傳輸系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].通信技術(shù),2010,43(01):4-6.

[4] 莫晏光,代文化.多功能移動(dòng)數(shù)字電視的研究和開(kāi)發(fā)[J].通信技術(shù),2009,42(07):119-121.

[5] 張毅剛,彭喜元,董繼成.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2000.

[6] 翟永,劉磊.測(cè)繪數(shù)據(jù)中心Windows主機(jī)USB端口監(jiān)控與審計(jì)技術(shù)研究[J].信息安全與通信保密,2009(04):93-96.

猜你喜歡
波特率U盤(pán)串口
UART 波特率檢測(cè)電路的FPGA 設(shè)計(jì)算法與實(shí)現(xiàn)
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
CAN 總線波特率自適應(yīng)程序設(shè)計(jì)
采用U盤(pán)文件冗余方案實(shí)現(xiàn)TSP系統(tǒng)的可靠裝載
自動(dòng)辨認(rèn)插口方向的U盤(pán)
淺談西門(mén)子S7—400與S7—200的通訊實(shí)現(xiàn)方法
波特率自適應(yīng)的CAN驅(qū)動(dòng)在嵌入式Linux下的實(shí)現(xiàn)①
數(shù)字電源內(nèi)部數(shù)據(jù)傳輸?shù)拇谕ㄐ欧椒▽?shí)現(xiàn)
USB接口的多串口數(shù)據(jù)并行接收方法探索
串口技術(shù)的實(shí)物調(diào)試和虛擬仿真聯(lián)合教學(xué)模式
宁河县| 延安市| 体育| 鲜城| 凤冈县| 武宣县| 宿州市| 丘北县| 新民市| 广东省| 延长县| 沽源县| 绥滨县| 东明县| 新兴县| 龙里县| 屯门区| 乌兰浩特市| 遵义县| 玉山县| 香河县| 巫山县| 昌邑市| 长海县| 株洲市| 辽阳县| 丰原市| 福鼎市| 收藏| 象山县| 新龙县| 镇赉县| 沙坪坝区| 广安市| 台中市| 无棣县| 弥勒县| 雅江县| 汉中市| 疏勒县| 金昌市|