亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于STM32的通用高速編程器的設計與實現(xiàn)

        2016-03-27 09:44:44何晉紅潘桃于婷馬義德蘭州大學信息科學與工程學院蘭州資源環(huán)境職業(yè)技術學院
        數(shù)碼世界 2016年7期

        何晉紅潘桃于婷馬義德.蘭州大學信息科學與工程學院 .蘭州資源環(huán)境職業(yè)技術學院

        ?

        基于STM32的通用高速編程器的設計與實現(xiàn)

        何晉紅1潘桃2于婷1馬義德1
        1.蘭州大學信息科學與工程學院 2.蘭州資源環(huán)境職業(yè)技術學院

        文章設計并實現(xiàn)了一種針對FLASH、EEROM等存儲器進行數(shù)據(jù)更新的高速通用編程器。該編程器是一個以STM32為核心,能對24、25等系列的存儲器完成數(shù)據(jù)寫入、讀出等操作的嵌入式系統(tǒng)。系統(tǒng)具備USB連接PC機的聯(lián)機操作模式和基于UCGUI的脫機操作模式。它可以控制接口電壓以適用更多的芯片,與當前常見編程器進行性能比較,其具有更好的兼容性、更快的操作速度和更高的數(shù)據(jù)正確率。

        編程器 STM32 嵌入式系統(tǒng) UCGUI

        隨著信息時代的快速前進,物聯(lián)網(wǎng)、汽車電子等都有了前所未有的發(fā)展,智能家居、可穿戴設備也應運而生。這些數(shù)字化、智能化的產(chǎn)品與我們的日常生活已密不可分。而它們的固件升級,程序更新和量產(chǎn)都需要相關人員對其存儲器內(nèi)的數(shù)據(jù)進行讀寫操作。然而目前所見存儲器種類繁多,編程接口和時序也不盡相同,這就要求我們設計一個能夠操作常見存儲器的多功能、通用編程器,它不僅要有足夠快的寫入速度,而且需要保證寫入數(shù)據(jù)的正確性。目前市面上有一些類似的產(chǎn)品,如XTW100、 TL866CS等,然而它們一般都針對某一特定系列的存儲芯片并且讀寫速度比較慢?;谶@樣的現(xiàn)狀,這里設計了一個基于ST(意法半導體)公司的STM32F207單片機的編程器。憑借其120MHz的工作頻率、400Kb/S的I2C接口,30Mb/S的SPI接口以及 硬件SD卡接口,該編程器擁有了非常優(yōu)越的性能。

        1 系統(tǒng)原理概述

        本文所設計的編程器主要完成24,、25、26、45、95系列存儲芯片的讀寫、擦除等,同時可以用作SD卡讀卡器。它由硬件和軟件兩部分組成。其中硬件部 分以STM32為核心,軟件包括PC機應用程序、USB 驅(qū)動程序以及編程器固件。固件程序運行于硬件平臺之上構成 整個系統(tǒng)的核心。它接受來自PC機的數(shù)據(jù)和指令,并根據(jù)指令對連接其上的存儲芯片進行操作。編程器與PC機通信使用USB2.0協(xié)議標準。該系統(tǒng)還使用觸摸屏進行人機交互來完成脫機操作。

        1.1編程器硬件平臺

        硬件平臺是系統(tǒng)重要組成部分,采用STM32F207 Contex-M3[2]芯片作為控制器,含有 供電系統(tǒng)、觸摸屏、SD卡以及電平轉(zhuǎn)換電路的編程器平臺。

        系統(tǒng)電源含兩部分:3.3伏固定電壓與程序可調(diào)電源。其中3.3伏為MCU,觸摸屏,SD卡等供電, 而可調(diào)電源的輸出電壓受MCU控制。在MCU與 存儲芯片之間接有電平轉(zhuǎn)換接口芯片SN74LVC8T245,該芯片分A、B兩個端口,A、B 兩端的數(shù)字電平可以獨立進行設置。同時這里還使 用了TCA9517,它是I2C接口專用電平轉(zhuǎn)換芯片。

        SD卡上存放編程器的配置數(shù)據(jù)、脫機操作文件、 脫機讀取的芯片內(nèi)數(shù)據(jù)和脫機芯片參數(shù)庫。它通過SD卡接口與STM32連接,MCU上移植了嵌入式文件系統(tǒng)FatFs以對SD卡進行基于文件的讀寫操作。

        在SD卡根目錄下有data子目錄用來存放脫機操作的數(shù)據(jù)。名為Chipinfo的文件存放芯片參數(shù)庫。Dat文件存放文件命名編號信息。執(zhí)行讀取操作時,讀出來的數(shù)據(jù)保存在命名為被操作芯片型號-文件編號.bin的文件內(nèi)。每次讀取完成后文件編號增一并保存到Dat里面。例如連續(xù)讀取兩次EN25Q80芯片就會創(chuàng)建兩個文件,分別為EN25Q80-00006. bin和 EN25Q80-00007.bin。在SD卡根目錄下還有一個文件LCD_CONFIG,它存儲了LCD觸摸屏的配置參數(shù)。

        系統(tǒng)采用240*320分辨率的LCD作顯示,電阻式觸摸屏作觸控感應。觸摸控制芯片使用 XTP2046。它將模擬電壓值進行數(shù)字采樣量化并通過SPI接口將數(shù)據(jù)傳輸給MCU。LCD界面的開發(fā)使用了UCGUI。編程器啟動時會判斷LCD_ CONFIG 文件是否存在,不存在時將會調(diào)用校準代碼進行觸摸屏校準并生成該文件。編程器上有一個32Pin的鎖緊座。編程器與待編程存儲器的連接會根據(jù)具體芯片選擇使用SPI或I2C接口。

        1.2編程器固件程序

        固件程序主要完成PC機控制指令的解析和執(zhí)行, 同時響應觸摸輸入。固件程序解析執(zhí)行PC機指令然后返回執(zhí)行結果 和數(shù)據(jù)。PC機應用通過USB接口連接編程器并結合固件程序?qū)Υ鎯π酒M行操作,同時操作SD卡上的編程數(shù)據(jù)和脫機芯片庫等。固件程序含有大量的代碼,編程器會根據(jù)待操作芯片進行適配選擇。固件程序還提供了脫機操作的功能。在脫機的情況下固件程序會通過用戶的交互輸入執(zhí)行操作,并將結果反饋顯示給用戶。脫機操作的實現(xiàn)依賴于觸摸屏交互和SD卡上的芯片庫以及文件系統(tǒng)。

        1.3PC機軟件系統(tǒng)

        PC機程序開發(fā)使用MFC類庫。借助PC機優(yōu)越的運算性能,聯(lián)機的情況下比脫機操作具有更快的速度,而且在聯(lián)機的情況下還可以對編程文件進行可視化編輯。PC機軟件提供的操作包括:文件加載、芯片選擇、芯片自動識別、編程、擦除、讀取、向數(shù)據(jù)庫中添加芯片以及對SD卡的操作。在程序中動態(tài)地建立ODBC數(shù)據(jù)源,并將芯片信息存儲進ACCESS數(shù)據(jù)庫中。數(shù)據(jù)庫里記錄了常用的24,25,26,45,95等系列的芯片,對于一些未收錄的,用戶可以自己將芯片信息添加進數(shù)據(jù)庫,編程器會根據(jù)芯片的特性自動選擇合適的讀寫時序嘗試操作。PC程序根據(jù)待編程的芯片從數(shù)據(jù)庫中讀取芯片參數(shù)。從PC文件系統(tǒng)中讀取Hex或Bin格式文件并進行解碼,然后將指令包和數(shù)據(jù)傳送給編程器。從存儲芯片讀取數(shù)據(jù)的時,首先將讀到的數(shù)據(jù)使用 CListCt r l控件顯示給用戶,用戶可以將該數(shù)據(jù)保存在PC上指定的位置。PC也通過USB訪問編程器上的SD卡。由于使用了USB接口進行通信,所以這里還需要為編程器開發(fā)USB驅(qū)動[7]來負責應用層和USB 總線層的數(shù)據(jù)傳遞。驅(qū)動程序還進行數(shù)字簽名,以便自動安裝。

        2 系統(tǒng)關鍵技術

        2.1編程器電源系統(tǒng)及接口電壓轉(zhuǎn)換

        本系統(tǒng)需要兩種電壓。一個3.3V和一個編程可調(diào) 的電源。它們都通過對5V輸入電壓進行降壓得到。采用LM1117-3.3穩(wěn)壓芯片產(chǎn)生3.3V電壓。在其輸入和輸出端分別接入兩個濾波電容,一個容值較大,濾去電源的低頻成分,而另外一個容值較小,對高頻成分呈現(xiàn)較低的阻抗,主要濾除由負載電流變化而引起的高頻成分。

        可調(diào)電壓用STM32的一路DAC和LM1117-ADJ可調(diào)三端穩(wěn)壓芯片產(chǎn)生。使用DAC的輸出來抬高 ADJ端的電壓,調(diào)節(jié)DAC的輸出就可以達到調(diào)節(jié)輸 出電壓的目的。

        從DAC到LM1117的ADJ端使用運放LM358做了電壓跟隨。因為LM1117工作的時候ADJ端會有微弱的電流流出,而DAC輸出阻抗較大,該電流如果直接流經(jīng)DAC的輸出端,對ADJ端的電勢會有影響。

        設計中還將兩個110歐姆串聯(lián),然后接到其輸出端,從兩個電阻的中間取得電壓接至STM32的ADC上面,STM32對此電壓進行實時監(jiān)測,防止電壓設置不當造成器件損壞。

        2.2控制指令格式

        由于數(shù)據(jù)較大,本編程器使用USB批量傳輸方式。編程器配置了兩個USB端點,一個控制端點,用來進行USB的枚舉等,另外一個批量端點,用來批量傳輸數(shù)據(jù)。

        2.2.1命令包結構

        在USB枚舉完成以后,PC機會根據(jù)用戶所選擇 的操作構建一個命令塊包,然后發(fā)給編程器。命令塊包的結構總共有30個字節(jié)。

        dSignature字段是控制命令包標志,為字符串 USBC。

        dTag是命令包標簽,由PC機程序隨機生成。當編程器完成該命令返回狀態(tài)的時候,需要在狀態(tài)包的dTag字段中填入對應命令的dTag。

        dDataLength指定在數(shù)據(jù)階段需要傳輸?shù)臄?shù)據(jù)長度。

        fVol是待操作芯片電壓信息,是一個浮點數(shù)。編程器根據(jù)fVol設置接口電壓。部分指令的fVol域無效。

        bFlags最高位(D7)表示數(shù)據(jù)方向,0表示輸出,1表示輸入。

        bCBLength表示后面CB的長度。

        CB是需要執(zhí)行的命令和命令對應的參數(shù)。12字節(jié)數(shù)據(jù)不一定完全使用,有效長度由bCBLength指定。

        2.2.2狀態(tài)包結構

        編程器執(zhí)行完操作后會返回執(zhí)行結果給PC。dSignature為狀態(tài)包標志。字符串USBS。dTag為狀態(tài)包標簽,其值為命令封包中的dTag。

        bStatue標識命令執(zhí)行結果,0x00表示成功, 0x01表示失敗。

        2.2.3編程器命令結構

        命令包含存儲芯片操作命令和SD卡操作命令。接口類型分為兩類:0x01表示SPI,0x02表示 I2C;芯片類型使用24、25等作為區(qū)分。接口速率占 一個字節(jié),I2C以K為單位,SPI以Mb/s為單位。

        2.3芯片參數(shù)庫設計

        為支持多種芯片,設計了芯片參數(shù)庫。在芯片操作時需要獲取數(shù)據(jù)庫中的芯片信息。下面給出數(shù)據(jù)表中所有字段及說明。

        Chip Index:芯片的索引編號。

        ManuID:廠商ID,主要用來芯片的自動識別。Chip ID:芯片ID號。用來芯片的自動識別。RomSize:芯片的存儲容量,以字節(jié)為單位。PageSize:存儲器的頁大小。芯片編程采用頁編程方式,有利于編程速度的提高。

        VectorName:芯片廠商名稱簡稱,方便用戶選 擇芯片。

        InterFace:芯片的編程接口類型。

        Vol:編程接口電壓信息。

        Speed:芯片編程接口支持的最大讀寫速率。 設置正確的讀寫速率,才能保證讀寫的正確率。 Type:芯片類型。24、25系列等。

        在進行操作之前一般會自動識別或者手動選擇 芯片。選定芯片后應用程序會從數(shù)據(jù)庫獲取芯片的 信息,然后構建命令塊包并發(fā)送給編程器。

        3 結論

        在此將對該編程器的性能參數(shù)做一些測試。這里將抽取不同系列、不同廠商的不同容量存儲器進行測試。測試相關數(shù)據(jù),包括對編程器來講至關重要的一項指標:寫入數(shù)據(jù)的正確率。分析結果可以發(fā)現(xiàn),不同的芯片操作速度相差較大,尤其是寫入和擦除的速度。這主要是受芯片自身性能和芯片容量的影響。同時,這里還跟其他的編程器,如XTW100、TL866CS等做了性能對比,發(fā)現(xiàn)該編程器跟其他相比速度平均提升了1.5倍左右,而這主要得益于我們MCU良好的處理性能、高效的通信協(xié)議以及我們優(yōu)異的編程算法。而前面所提兩 款編程器只支持24、25系列的部分存儲器,且不具備脫機操作的功能。另外值得一提的是本編程器數(shù)據(jù)寫入的正確率。由于采用了可靠的通信協(xié)議,使得對所有支持的存儲器都達到了百分之百正確寫入的效果。

        [1] USB Imp lementer’s Forum. USB Speci f ication Rev2.0. http://www.usb.org,2000.

        [2] 喻金錢,喻斌.STM32F系列ARMCor tex-M3核微控制器開發(fā)與應用[M].北京:清華大學出版社, 2011.

        [3] 王蘭英.基于STM32嵌入式系統(tǒng)的uCGUI移植與實現(xiàn).四川理工學院學報(自然科學版). 2012年01期.

        [4] 動態(tài)注冊ODBC數(shù)據(jù)源的方法[OL]. ht tp://wenku. baidu.com,2013.

        [5] (美)帕羅賽斯.MFC Windows程序設計[M].北京:清華大學出版社,2007.

        [6] 亓蘭武,周曉.OBJ文件和HEX文件相互轉(zhuǎn)換原理與實現(xiàn)[J].電子技術應用.1996年07期.

        [7] 劉榮.圈圈教你玩USB[M].北京:北京航空航天大學出版社,2009.

        午夜精品久久久久久久99老熟妇 | 久久尤物AV天堂日日综合| 国产成人精品视频网站| 国产日产亚洲系列首页| 97人伦影院a级毛片| 亚洲成色www久久网站夜月| 亚洲一区二区自拍偷拍| 亚洲av色香蕉一区二区三区av| 久久午夜福利电影| 国产精品免费大片| 日本一区二区三区中文字幕最新| 亚洲一本二区偷拍精品| 日本精品少妇一区二区三区| 久久精品国产亚洲av高清漫画| 国产黑色丝袜在线观看视频| 日本免费一区二区久久久| 欧美成人午夜免费影院手机在线看 | 亚洲精品无码av片| 亚洲精品2区在线观看| 亚洲最大一区二区在线观看| 最新国产福利在线观看精品| 日日人人爽人人爽人人片av| 杨幂二区三区免费视频| 男人天堂这里只有精品| 亚洲av之男人的天堂网站| 中文不卡视频| 少妇熟女天堂网av天堂| 国产欧美日韩精品丝袜高跟鞋 | 亚洲av成人波多野一区二区| 国产成a人亚洲精品无码樱花| 97久久精品人人做人人爽| 久久AⅤ天堂Av无码AV| 久草视频这里只有精品| 国产免费av片无码永久免费 | 日本九州不卡久久精品一区| 久热国产vs视频在线观看| 欧美黄色免费看| 偷拍熟女露出喷水在线91| 妺妺跟我一起洗澡没忍住| 国产在线精品一区二区不卡| 亚洲中文字幕人妻诱惑|