日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]1 C8051Fxxx單片機簡單介紹和Flash結構  C8051Fxxx系列器件是Silicon Labs推出的一個高速單片機系列。這款單片機是完全集成的混合信號片上系統(tǒng)型MCU 芯片,具有高速、流水線結構的8051 兼容的CIP51內(nèi)核;70%的指令

C8051Fxxx單片機簡單介紹和Flash結構

  C8051Fxxx系列器件是Silicon Labs推出的一個高速單片機系列。這款單片機是完全集成的混合信號片上系統(tǒng)型MCU 芯片,具有高速、流水線結構的8051 兼容的CIP51內(nèi)核;70%的指令的執(zhí)行時間為1個或2個系統(tǒng)時鐘周期;片上有豐富的片內(nèi)外設,根據(jù)型號的不同,包括ADC、DAC、UART、捕捉/比較模塊的可編程計數(shù)器/定時器陣列、SPI、SMBus等。

  C8051Fxxx單片機有大容量的Flash存儲器,用于程序代碼和非易失性數(shù)據(jù)存儲,可在系統(tǒng)編程。Flash的結構是以扇區(qū)為單位組織的(128 KB系列以1 024字節(jié)為1個扇區(qū),64 KB系列以512字節(jié)為1個扇區(qū))。非易失性Flash可以用來存儲系統(tǒng)的參數(shù),如軟件版本、生產(chǎn)日期等。Flash可以使用編程器擦寫,也可以在程序中使用MOVX指令來修改,從而使Flash 存儲器具有在系統(tǒng)重新編程能力,允許現(xiàn)場更新8051 固件程序。Flash的寫和擦除操作由硬件自動定時,以保證操作正確通過。C8051Fxxx的Flash保存下載的程序,在系統(tǒng)上電后,單片機從Flash讀出代碼數(shù)據(jù)到RAM,之后程序開始運行。

2  程序丟失問題的出現(xiàn)和原因

  在一些實際應用中,系統(tǒng)重新上電后會出現(xiàn)程序不能正常運行的問題,常表現(xiàn)為“程序丟失”。通常是由于程序代碼被損壞或被修改造成的。

  造成程序丟失問題的原因很多,可以歸結到一個基本原因,即對Flash的訪問失敗而造成Flash保存的代碼出現(xiàn)錯誤。對于所有包含有Flash寫/擦除子程序的系統(tǒng),當CPU工作在規(guī)定的VDD、溫度、系統(tǒng)時鐘頻率范圍之外時,對Flash進行寫/擦除操作,都有可能出現(xiàn)Flash數(shù)據(jù)錯誤的現(xiàn)象。

2.1  Flash數(shù)據(jù)錯誤的硬件原因

  C8051Fxxx單片機的Flash操作由硬件控制,所以硬件上的不穩(wěn)定可能造成Flash操作錯誤。硬件原因主要是能影響CPU正常運行的因素,以及能影響Flash操作環(huán)境的因素。這些因素包括操作電壓、溫度以及外部干擾脈沖等,具體如下:

  ①  能影響CPU運行可靠性的參數(shù)有系統(tǒng)時鐘源。如果系統(tǒng)時鐘由外部晶振提供,外部的電磁干擾引起尖脈沖,并耦合到系統(tǒng)時鐘上,則會導致不可預知的操作。
 ?、? 系統(tǒng)在單片機的工作電壓沒有穩(wěn)定(VDD上升時間低于規(guī)定的1 ms)時就已經(jīng)完成復位,由于系統(tǒng)復位時需要從Flash讀出代碼數(shù)據(jù),F(xiàn)lash電壓不穩(wěn)定會出現(xiàn)不可預測的錯誤。
 ?、?nbsp; 在對Flash的操作過程中,如果溫度、電壓不穩(wěn)定,也可能造成Flash數(shù)據(jù)錯誤。

2.2  Flash數(shù)據(jù)錯誤的軟件原因

  代碼設計的缺陷是程序丟失的主要原因,因為單片機的Flash是由硬件來控制的,不能由軟件來控制操作的細節(jié),所以程序的不完善可能造成Flash的訪問出錯,從而使Flash數(shù)據(jù)出現(xiàn)錯誤。 這些操作包括: 在PSWE位(PSCTL.0)置1時CPU執(zhí)行中斷服務程序中的MOVX寫操作,該中斷服務程序要使用xdata 或pdata 的易失性存儲區(qū)單元,這樣可能導致向xdata 或pdata存儲區(qū)寫的數(shù)據(jù)寫到Flash中了,從而出現(xiàn)問題。另外,如果使用外部晶振作系統(tǒng)時鐘,在時鐘沒有穩(wěn)定時就對Flash進行寫操作,也可能造成程序丟失。

3  程序丟失問題的解決方法

  針對以上可能的原因,可以從軟硬件兩個方面來解決程序丟失問題。在硬件方面,主要是給系統(tǒng)提供穩(wěn)定的工作環(huán)境,并避免外部干擾對CPU運行環(huán)境的影響;在軟件方面,主要是規(guī)范對Flash的操作。

3.1  從硬件方面預防程序丟失

  注意,以下的方法不是對所有的器件都適用,要根據(jù)具體的硬件情況選擇相應的方法:

  ①  在RST引腳安裝VDD監(jiān)測電路,并將VDD監(jiān)視設置為一個復位源(置RSTSRC.1為1)。這樣如果系統(tǒng)電壓不穩(wěn)定,系統(tǒng)將自動復位,從而避免在電壓不穩(wěn)時訪問Flash。
 ?、? 對外部晶振時鐘2分頻,更好的方法是使用內(nèi)部振蕩器,這樣能提高系統(tǒng)時鐘的抗干擾能力。
 ?、?nbsp; 如果使用外部晶振提供系統(tǒng)時鐘,信號線應盡量靠近單片機的輸入端,同時晶振外殼接地。
 ?、?nbsp; 對于使用外部晶振作時鐘源的系統(tǒng),應盡量增強晶振的驅動能力,這樣也能在一定程度上預防程序丟失。

3.2  從軟件方面預防程序丟失

  程序丟失的主要原因是程序設計的缺陷,所以合理的程序代碼設計能極大地預防該問題的出現(xiàn)。在代碼中可以用多種方法來預防Flash數(shù)據(jù)丟失:

  ①  在PSWE=1下禁止中斷,使得程序中的MOVX寫指令是對Flash而不是對XRAM。
  ②  在PSWE=1下盡可能少地訪問變量。在PSWE=0下執(zhí)行地址譯碼操作,并用間接尋址方式執(zhí)行MOVX寫操作。例如,向Flash寫多個字節(jié),間接尋址和寫PSWE過程如下:

  unsigned char xdata * idata pwrite;//使用idata指針指向Flash
  unsigned char *source;
  unsigned char mydata;
  for (addr = 0; addr < 100; addr++) {
    //PSWE =0時獲取要寫入的數(shù)據(jù)
    mydata = *source++;
    //PSWE =0時修改寫入數(shù)據(jù)的目標地址
    pwrite = (unsigned char xdata *) addr;
    PSCTL = 0x01;//PSWE=1
    //賦值方式寫入數(shù)據(jù),此時不執(zhí)行目標地址的修改操作
    *pwrite = mydata;
    PSCTL = 0x00;//PSWE=0
  }

  以上代碼中,當PSWE = 1時只執(zhí)行寫Flash操作(*pwrite = mydata);其他操作,如修改addr的值、獲取源數(shù)據(jù)和目的地址,都是在PSWE = 0時執(zhí)行的。


 

③  將Flash寫/擦除指針指向data或idata區(qū)。
  ④  減少將PSWE置1的指令操作。理想的情況是只有兩個操作將PSWE置1,即寫1個Flash字節(jié)和擦除1個Flash字節(jié)。
 ?、?nbsp; 在Flash寫/擦除函數(shù)中,使能VDD監(jiān)視并設置復位源。使能和設置操作必須在實際的寫操作發(fā)生之前,置PSWE=1之后完成。
 ?、?nbsp; 代碼中所有的對RSTSRC的寫操作均用直接賦值方式完成(如RSTSRC = 0x02),不能用讀/寫指令(如ORL或ANL)來完成。例如,代碼“RSTSRC |= 0x02”是非法的。
 ?、?nbsp; 對于能用PORSF位來設置VDD為復位源的器件,保證在寫RSTSRC時置PORSF=1,即先使能VDD為復位源,再使能其他復位源的操作,如時鐘丟失監(jiān)測(missing clock detector)、比較單元和軟件復位。

4  一個實際應用方案

  在有的應用場合,由于需要較快的執(zhí)行速度,不能使用單片機的內(nèi)部時鐘作系統(tǒng)時鐘源,所以使用外部晶振來提供時鐘。在這種情況下,首先要在硬件上確保系統(tǒng)工作參數(shù)正常。

  在軟件上,由于最常見的Flash丟失原因是程序問題,所以可以在代碼中用多種方法來預防Flash數(shù)據(jù)丟失。首先,在初始化單片機時,使能VDD檢測,并設置VDD和時鐘丟失為復位源。如果程序中有寫/擦除Flash的代碼,則在寫/擦除操作前切換系統(tǒng)時鐘,將系統(tǒng)時鐘切到內(nèi)部時鐘或對外部時鐘2分頻;寫/擦除操作完成之后,再恢復系統(tǒng)時鐘,通過增加Flash修改操作時的時間開銷來實現(xiàn)系統(tǒng)的穩(wěn)定[2]。以下以C8051F126為例,給出了系統(tǒng)時鐘切換的程序清單:

  void SYSCLKAdjust(unsigned char select) {
    EA_Save=EA;
    SFRPAGE=0x0f;
    switch(select) {
      case 0x01:
        OSCICN_Save = OSCICN;
        CLKSEL_Save = CLKSEL;
        OSCICN = 0xc3;//內(nèi)部時鐘,不分頻
        CLKSEL = 0x00;
        break;
      case 0x02:
        OSCXCN_Save = OSCXCN;
        OSCXCN |= 0x70;//外部時鐘2分頻
        break;
      default://選擇內(nèi)部時鐘
        OSCICN_Save = OSCICN;
        CLKSEL_Save = CLKSEL;
        OSCICN = 0xc3;
        CLKSEL = 0x00;
        break;
    }
  }

  要恢復系統(tǒng)時鐘到Flash操作前的狀態(tài),只需將CLKSEL_Save、OSCICN_Save、OSCXCN_Save重新寫回到CLKSEL、OSCIN、OSCXCN。

  C8051F126的系統(tǒng)時鐘(SYSCLK)可以在內(nèi)部時鐘和外部時鐘之間自由切換,切換時的操作要求如下:

  ①  在切換過程中,先設置所選時鐘的屬性,再用CLKSEL將其設置為SYSCLK。
 ?、? 在還原過程中,先用CLKSEL選擇時鐘源,再設置其屬性。
 ?、?nbsp; 如果切換過程中關閉外部晶振,要再恢復外部時鐘,啟動后至少要等1 ms,再去讀XTLVLD(OSCXCN.7)來判斷晶振時鐘是否穩(wěn)定。否則,可能讀到錯誤值。
 ?、? 在外部時鐘穩(wěn)定運行后,再對其分頻,不必插入等待周期。
  ⑤  在切換過程中,可以保持外部時鐘繼續(xù)運行,這樣在還原過程中就不必等待外部時鐘穩(wěn)定,從而節(jié)省時間開銷,代價是系統(tǒng)功耗有所增加。

5  總結

  程序丟失會帶來各種不良的后果,最嚴重時致使程序無法正常運行,從而造成整個系統(tǒng)崩潰,給產(chǎn)品的應用帶來麻煩。在系統(tǒng)的硬件設計和代碼編寫過程中,通過對以上問題的注意,可以有效地防止程序丟失問題的出現(xiàn)。另外,由于系統(tǒng)時鐘的切換只發(fā)生在Flash的寫/擦除過程中,操作結束后又恢復成原來的設置,因而對系統(tǒng)運行速度的影響很小,從而保證了系統(tǒng)其他功能的實現(xiàn)。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟和信息化委員會、上海市發(fā)展和改革委員會、上海市商務委員會、上海市教育委員會、上海市科學技術委員會指導,東浩蘭生(集團)有限公司主辦,東浩蘭生會展集團上海工業(yè)商務展覽有...

關鍵字: 電子 BSP 芯片 自動駕駛

推進卓越制造,擴大產(chǎn)能并優(yōu)化布局 蘇州2025年9月5日 /美通社/ --?耐世特汽車系統(tǒng)與蘇州工業(yè)園區(qū)管委會正式簽署備忘錄,以設立耐世特亞太總部蘇州智能制造項目。...

關鍵字: 智能制造 BSP 汽車系統(tǒng) 線控

中國鄭州2025年9月5日 /美通社/ --?全球領先的電動客車制造商宇通客車("宇通",上交所代碼:600066)全新升級的車聯(lián)網(wǎng)系統(tǒng)Link+采用先進技術實現(xiàn)車隊車輛與管理平臺的智能互聯(lián)。作為Vehicle+升級版,...

關鍵字: LINK 車聯(lián)網(wǎng) AI PS

慕尼黑和北京2025年9月4日 /美通社/ -- 寶馬集團宣布,新世代首款量產(chǎn)車型BMW iX3將于9月5日全球首發(fā),9月8日震撼亮相慕尼黑車展。中國專屬版車型也將在年內(nèi)與大家見面,2026年在國內(nèi)投產(chǎn)。 寶馬集團董事...

關鍵字: 寶馬 慕尼黑 BSP 數(shù)字化

北京2025年9月4日 /美通社/ --?在全球新一輪科技革命與產(chǎn)業(yè)變革的澎湃浪潮中,人工智能作為引領創(chuàng)新的核心驅動力,正以前所未有的深度與廣度重塑各行業(yè)發(fā)展格局。體育領域深度融入科技變革浪潮,駛入數(shù)字化、智能化轉型快車...

關鍵字: 人工智能 智能體 AI BSP

上海2025年9月2日 /美通社/ -- 近日,由 ABB、Moxa(摩莎科技)等八家企業(yè)在上海聯(lián)合發(fā)起并成功舉辦"2025 Ethernet-APL 技術應用發(fā)展大會"。會議以"破界?融合...

關鍵字: ETHERNET 智能未來 BSP 工業(yè)通信

傳感器模塊能實現(xiàn)便捷無接觸的后備箱或側滑門開啟,適配各種車輛架構 該24 GHz雷達傳感器可集成于保險杠或底盤上,并通過特定的手勢或腳部動作觸發(fā)響應 已為多家歐洲主流車企啟動量產(chǎn)交付 德國布爾2025...

關鍵字: 傳感器 BSP 觸發(fā) 保險杠

以高效節(jié)能方案繪制AI算力綠色未來 上海2025年8月29日 /美通社/ -- 8月28日,臺達受邀出席"2025中國智算產(chǎn)業(yè)綠色科技大會",全方位分享臺達在智算領域的前沿洞見與綠色解決方...

關鍵字: AI 可持續(xù)發(fā)展 數(shù)據(jù)中心 BSP

淄博2025年8月29日 /美通社/ -- 8月26日至27日,TÜV南德意志集團(以下簡稱"TÜV南德")受邀參加由淄博市...

關鍵字: BSP 人工智能 信息安全 新加坡

北京2025年8月28日 /美通社/ -- 近日,北京亦莊創(chuàng)新發(fā)布消息,北京經(jīng)濟技術開發(fā)區(qū)(簡稱北京經(jīng)開區(qū),又稱北京亦莊)以"高效辦成一件事"為抓手,圍繞企業(yè)信用修復的全流程全環(huán)節(jié),打造經(jīng)開區(qū)特色的&...

關鍵字: 數(shù)字化 集成 BSP 數(shù)據(jù)共享
關閉