• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于C8051F120的參數(shù)動(dòng)態(tài)配置設(shè)計(jì)

      2017-06-10 17:25:06楊偉
      移動(dòng)通信 2017年8期

      楊偉

      【摘 要】參數(shù)的動(dòng)態(tài)配置對(duì)于單片機(jī)控制設(shè)備而言至關(guān)重要。通過(guò)參數(shù)配置的需求分析,明確了參數(shù)的硬件相關(guān)性和參數(shù)數(shù)據(jù)量小的特點(diǎn),選擇C8051F120作為實(shí)現(xiàn)平臺(tái),在C8051F120上實(shí)現(xiàn)了對(duì)參數(shù)的讀寫(xiě)及動(dòng)態(tài)配置,并通過(guò)了實(shí)際使用和測(cè)試,簡(jiǎn)單實(shí)用。

      【關(guān)鍵詞】C8051F120 參數(shù)配置 FLASH

      Design of Dynamic Parameter Configuration Based on C8051F120

      YANG Wei

      [Abstract] The dynamic parameter configuration is crucial for the control equipment of MCU. Based on the requirement analysis on parameter configuration, the features of hardware correlation and small amount of parameters were determined. C8051F120 selected as the implementation platform, the read-write and dynamic configuration of parameters was realized. The practical use and test demonstrate the simplicity and feasibility.

      [Key words]C8051F120 parameter configuration FLASH

      1 引言

      對(duì)于單片機(jī)控制設(shè)備而言,或多或少都有些重要的參數(shù)需要配置。控制設(shè)備可以根據(jù)所配置的不同參數(shù),實(shí)現(xiàn)不同的功能和作用。在硬件平臺(tái)不改變的情況下,僅通過(guò)讀取所配置的數(shù)據(jù)就可以啟動(dòng)不同的程序,完成不同的任務(wù)。同樣,部分調(diào)試功能的程序也可以通過(guò)參數(shù)配置的方式進(jìn)行開(kāi)啟或關(guān)閉。顯而易見(jiàn),參數(shù)動(dòng)態(tài)配置對(duì)單片機(jī)控制設(shè)備極為重要。

      在需要校準(zhǔn)和基準(zhǔn)需要調(diào)整的單片機(jī)控制設(shè)備上,校準(zhǔn)數(shù)據(jù)和基準(zhǔn)就是需要?jiǎng)討B(tài)保存的參數(shù)。通常情況下,需要?jiǎng)討B(tài)保存的參數(shù)的數(shù)據(jù)量較小。因此,在控制設(shè)備中實(shí)現(xiàn)參數(shù)的動(dòng)態(tài)更新和保存,并不需要選擇硬盤(pán)或光盤(pán)大容量的存儲(chǔ)方式,只需要選擇合適的平臺(tái)。這樣既可以簡(jiǎn)化設(shè)計(jì),又提高了可靠性。

      2 配置參數(shù)的需求分析

      在控制設(shè)備中需要保存的參數(shù)包括2個(gè)基準(zhǔn)值及3個(gè)補(bǔ)償值?;鶞?zhǔn)值和補(bǔ)償值均是和硬件電路特性相關(guān),受到濾波器、AD轉(zhuǎn)換器、混頻器等器件的影響。因此,在不同的硬件平臺(tái)上基準(zhǔn)值和補(bǔ)償值有所差異。其中,基準(zhǔn)值的范圍為-60~5,補(bǔ)充值的范圍為-10~10,均為有符號(hào)的數(shù)。根據(jù)需要選擇參數(shù)類(lèi)型signed char。所需配置的參數(shù)一共5個(gè)字節(jié),數(shù)據(jù)量很小。定義參數(shù)語(yǔ)句如下:

      signed char refValue//基準(zhǔn)值,

      signed char compAD9874 //補(bǔ)償值。

      3 實(shí)現(xiàn)平臺(tái)C8051F120的FLASH簡(jiǎn)介

      C8051F120芯片具有DA/AD轉(zhuǎn)換器、片內(nèi)看門(mén)狗定時(shí)器、VDD監(jiān)視器和溫度傳感器等豐富的片內(nèi)資源,同時(shí)具有高速、低功耗、工業(yè)級(jí)等特點(diǎn),很適合用于控制場(chǎng)合。本文就選用C8051F120作為控制設(shè)備的實(shí)現(xiàn)平臺(tái)。

      C8051F120內(nèi)部有128 kB的FLASH存儲(chǔ)器,可用于程序代碼和非易失性數(shù)據(jù)存儲(chǔ)。另外,F(xiàn)LASH存儲(chǔ)器中有兩個(gè)附加的128字節(jié)的扇區(qū)(共256字節(jié)),只能用于非易失性數(shù)據(jù)存儲(chǔ)。而且,F(xiàn)LASH寫(xiě)/擦除壽命在-40 ℃~+85 ℃的工業(yè)溫度范圍內(nèi)保證在10 000次以上,適合多次配置。FLASH存儲(chǔ)器中256字節(jié)很適合用來(lái)存儲(chǔ)信息量小的數(shù)據(jù),可以簡(jiǎn)化設(shè)計(jì)和節(jié)省成本。

      FLASH存儲(chǔ)器可以每次寫(xiě)一個(gè)字節(jié),但必須首先擦除整個(gè)扇區(qū)。如果要修改一個(gè)多字節(jié)數(shù)據(jù)集中的某一個(gè)字節(jié),數(shù)據(jù)必須被移動(dòng)到臨時(shí)存儲(chǔ)區(qū)域。128字節(jié)的扇區(qū)規(guī)模使數(shù)據(jù)更新更加容易,可以不浪費(fèi)程序存儲(chǔ)器。這兩個(gè)128字節(jié)的扇區(qū)在128 k字節(jié)FLASH存儲(chǔ)器中是雙映射的,只能用MOVC讀和用MOVX寫(xiě),它們的地址范圍是0x00~0x7F和0x80~0xFF。要訪(fǎng)問(wèn)這兩個(gè)128字節(jié)的扇區(qū),PSCTL寄存器中的SFLE位必須被設(shè)置為邏輯“1”。

      SFLE位含義:臨時(shí)FLASH存儲(chǔ)器訪(fǎng)問(wèn)允許位。當(dāng)該位為1時(shí),軟件對(duì)FLASH的讀/寫(xiě)操作將指向兩個(gè)128字節(jié)的FLASH臨時(shí)存儲(chǔ)扇區(qū)。當(dāng)SFLE被設(shè)置為邏輯“1”時(shí),不應(yīng)訪(fǎng)問(wèn)0x00~0xFF以外的地址范圍。

      4 寫(xiě)參數(shù)與讀參數(shù)的實(shí)現(xiàn)

      參數(shù)的配置過(guò)程就是參數(shù)的寫(xiě)入和讀出的反復(fù)過(guò)程。要實(shí)現(xiàn)參數(shù)的動(dòng)態(tài)配置,首先可以做到參數(shù)的寫(xiě)入保存,再次做到參數(shù)的讀取,即先寫(xiě)后讀。由于選用FLASH存儲(chǔ)器中的256字節(jié)作為參數(shù)保存區(qū),讀/寫(xiě)參數(shù)也就是對(duì)FLASH的寫(xiě)/讀操作。FLASH寫(xiě)操作是用MOVX指令實(shí)現(xiàn)的,所以用于寫(xiě)(或擦除)操作的FLASH指針必須是xdata類(lèi)型。由于FLASH讀操作是用MOVC指令實(shí)現(xiàn)的,用于讀操作的FLASH指針必須是code類(lèi)型。

      4.1 寫(xiě)參數(shù)操作

      寫(xiě)參數(shù)就是把參數(shù)寫(xiě)到FLASH中。由于寫(xiě)一個(gè)FLASH字節(jié)只能對(duì)各位寫(xiě)入0,因此在寫(xiě)一個(gè)FLASH字節(jié)之前,該字節(jié)必須被初始化為0xff。而一個(gè)FLASH擦除操作將一頁(yè)內(nèi)的所有字節(jié)初始化為0xff。即寫(xiě)入FLASH前,需要對(duì)FLASH進(jìn)行擦除操作。flash_write是用C語(yǔ)言實(shí)現(xiàn)的寫(xiě)參數(shù)操作,可以將l_len個(gè)字節(jié)的數(shù)據(jù)寫(xiě)入到以0x00地址為開(kāi)頭的FLASH內(nèi)。

      4.2 讀參數(shù)操作

      讀參數(shù)就是把參數(shù)從FLASH中讀取出來(lái)并賦值給指定的參數(shù)中。flash_read是用C語(yǔ)言實(shí)現(xiàn)的讀參數(shù)操作,可以將l_len個(gè)字節(jié)的數(shù)據(jù)讀取出來(lái),并拷貝到以l_string為開(kāi)頭的地址內(nèi)。

      4.3 參數(shù)的動(dòng)態(tài)配置

      參數(shù)的動(dòng)態(tài)配置是由上位機(jī)通過(guò)串口完成的,連接圖如圖2所示。上位機(jī)和控制設(shè)備的信息交互是按照預(yù)定的串口協(xié)議進(jìn)行的。上位機(jī)軟件是VC++6.0編寫(xiě)的串口程序。配置參數(shù)時(shí),由上位機(jī)通過(guò)串口向單片機(jī)發(fā)送攜帶參數(shù)信息的指令。單片機(jī)接收到相關(guān)指令后,進(jìn)行解析,提取出基準(zhǔn)值和補(bǔ)償值,寫(xiě)入FLASH,再?gòu)腇LASH中讀出,通過(guò)串口向外發(fā)送確認(rèn)信息。用戶(hù)在上位機(jī)通過(guò)反饋信息,就可以識(shí)別參數(shù)配置過(guò)程是否成功。

      C8051F120具有兩個(gè)UART串行端口。通過(guò)軟件設(shè)置,串行口以115 200 bps的波特率和上位機(jī)進(jìn)行通信。串行口接收數(shù)據(jù)的方式采用中斷方式。

      控制設(shè)備中涉及參數(shù)的動(dòng)態(tài)配置包括參數(shù)的首次寫(xiě)入、參數(shù)的更改。參數(shù)的首次寫(xiě)入指單片機(jī)程序剛下載時(shí)FLASH中數(shù)據(jù)不是預(yù)期的數(shù)據(jù),需要通過(guò)上位機(jī)發(fā)送設(shè)置指令,把參數(shù)保存到單片機(jī)的FLASH中。參數(shù)的更改指單片機(jī)的使用環(huán)境或硬件特性等發(fā)生改變時(shí),參數(shù)也需要隨之改變。

      參數(shù)的動(dòng)態(tài)配置就是調(diào)用參數(shù)讀寫(xiě)的過(guò)程。由于上面已經(jīng)實(shí)現(xiàn)了將參數(shù)寫(xiě)入FLASH和從FLASH中讀取參數(shù)操作,這里主要介紹參數(shù)的解析和讀寫(xiě)函數(shù)的調(diào)用。exec_data()將上位機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)拷貝到write _buf數(shù)組中,并寫(xiě)入FLASH中,再?gòu)腇LASH中讀取數(shù)據(jù)到read_buf,最后設(shè)置給參數(shù)refValue和comp_AD9874。

      5 參數(shù)的有效性

      考慮到參數(shù)的讀寫(xiě)過(guò)程中可能會(huì)受到周?chē)蓴_誤碼,進(jìn)而導(dǎo)致所獲取的參數(shù)超出預(yù)定范圍。所以,對(duì)讀取出來(lái)的參數(shù)進(jìn)行有效性判斷,采用范圍判斷和奇偶檢驗(yàn)判斷。范圍判斷指判斷讀取的參考值和補(bǔ)償值是否超出預(yù)定范圍,如果超出,則給出錯(cuò)誤提示,如亮燈指示。奇偶檢驗(yàn)判斷指對(duì)讀取出來(lái)的參數(shù)進(jìn)行奇偶檢驗(yàn)判斷,如果校驗(yàn)的結(jié)果不對(duì),表明所讀取的參數(shù)不正確,則給出錯(cuò)誤提示,如亮燈指示。

      6 總結(jié)

      本文根據(jù)參數(shù)配置的需求,選擇了C8051F120芯片作為平臺(tái),并介紹了如何在C8051F120芯片進(jìn)行參數(shù)的讀寫(xiě)操作,實(shí)現(xiàn)了上位機(jī)對(duì)控制設(shè)備參數(shù)的動(dòng)態(tài)配置。該實(shí)現(xiàn)方法已在控制設(shè)備上使用,操作方便,且效果良好。

      參考文獻(xiàn):

      [1] SILABS. C8051F120芯片的datasheet[Z].

      [2] 馮順萍,劉文澤,方昌始. 單片機(jī)系統(tǒng)運(yùn)行參數(shù)的保存及有效性判別[J]. 信息化研究, 2002,28(6): 1-3.

      [3] 陳富安,張瑩. C8051F35X單片機(jī)內(nèi)部FLASH存儲(chǔ)器的擦寫(xiě)方法[J]. 電子設(shè)計(jì)工程, 2010,18(2): 105-106.

      [4] 江賢志,劉華章,張教育,等. 基于C8051F020單片機(jī)的RS485串行通信設(shè)計(jì)[J]. 電子測(cè)量技術(shù), 2014,37(3): 121-124.

      [5] 張培仁,孫力. 基于C語(yǔ)言C8051F系列微控制器原理與應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2007.

      [6] 潘琢金,施國(guó)君. C8051FXXX高速SOC單片機(jī)原理及應(yīng)用[M]. 北京: 北京航空航天大學(xué)出版社, 2003.

      [7] 王幸之,王雷,翟成,等. 單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)[M]. 北京: 北京航空航天大學(xué)出版社, 2000.

      [8] 尹海宏,陳雷. 基于單片機(jī)技術(shù)的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J]. 信息技術(shù), 2008(12): 5-7.

      [9] 傅務(wù)謹(jǐn). Flash存儲(chǔ)器在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用[J]. 福建電腦, 2008,7(22): 91-93.

      [10] 趙海艦. 嵌入式系統(tǒng)的Flash編程技術(shù)研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2005,11(26): 3006-3008.

      长宁县| 张掖市| 诸暨市| 宁德市| 高淳县| 南昌县| 怀仁县| 平谷区| 合川市| 新野县| 五大连池市| 岑溪市| 桓台县| 马鞍山市| 雷山县| 麟游县| 贵阳市| 桑植县| 聂荣县| 平顶山市| 兰溪市| 临沧市| 五峰| 庆安县| 晋中市| 黔西县| 句容市| 荔波县| 永胜县| 尉犁县| 屏山县| 喜德县| 房产| 吉首市| 汶上县| 富平县| 宝坻区| 邛崃市| 鞍山市| 新干县| 阜阳市|