999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MDK軟件的微控制器時(shí)鐘系統(tǒng)設(shè)計(jì)與虛擬仿真

2019-08-15 10:44:02強(qiáng),劉
實(shí)驗(yàn)室研究與探索 2019年7期
關(guān)鍵詞:用戶系統(tǒng)

漆 強(qiáng),劉 爽

(電子科技大學(xué) 光電科學(xué)與工程學(xué)院,成都 610054)

0 引 言

時(shí)鐘系統(tǒng)是任何一個(gè)微控制器系統(tǒng)穩(wěn)定工作的先決條件,在時(shí)鐘節(jié)拍的作用下,微控制器才能完成取指令、解釋、執(zhí)行等一系列操作。一旦時(shí)鐘系統(tǒng)失效,整個(gè)微控制器系統(tǒng)將無(wú)法正常工作。傳統(tǒng)的微控制器電路設(shè)計(jì)中,如8051等8位單片機(jī),時(shí)鐘系統(tǒng)相對(duì)比較簡(jiǎn)單,一般通過(guò)外接晶振或者引入外部時(shí)鐘源來(lái)構(gòu)成。而對(duì)于目前工程界常用的Cortex-M系列內(nèi)核微控制器而言,其時(shí)鐘系統(tǒng)設(shè)計(jì)較為復(fù)雜,工作頻率相對(duì)較高,如何完成時(shí)鐘系統(tǒng)的設(shè)計(jì)和仿真成為了嵌入式系統(tǒng)開(kāi)發(fā)的第一個(gè)難題[1]。

1 微控制器的時(shí)鐘系統(tǒng)

以Cortex-M3內(nèi)核微控制器LPC1768為例來(lái)介紹一下微控制器時(shí)鐘系統(tǒng)的基本構(gòu)成。

LPC1768微控制器的時(shí)鐘頻率高達(dá)100 MHz,片內(nèi)集成512 KB的Flash存儲(chǔ)器、64 KB的數(shù)據(jù)存儲(chǔ)器,片內(nèi)外設(shè)組件還包含了以太網(wǎng)接口、USB接口、UART接口、CAN通道、SPI接口、I2C接口、A/D和D/A接口以及70個(gè)通用GPIO引腳,廣泛用于工業(yè)控制、物聯(lián)網(wǎng)和智能家居等領(lǐng)域。由于其強(qiáng)大的功能以及便捷的開(kāi)發(fā)方式,得到了電子工程師的廣泛應(yīng)用,目前已經(jīng)逐步取代了傳統(tǒng)的8位單片機(jī)[2]。

LPC1768微控制器的時(shí)鐘系統(tǒng)如圖1所示,包括了時(shí)鐘源、鎖相環(huán)(Phase Locked Loop,PLL)和時(shí)鐘分頻等幾個(gè)部分。

圖1 時(shí)鐘系統(tǒng)結(jié)構(gòu)圖

(1)時(shí)鐘源。LPC1768包含了3個(gè)時(shí)鐘源:主振蕩器,片內(nèi)RC振蕩器和實(shí)時(shí)時(shí)鐘(Real-Time Clock,RTC)振蕩器。微控制器上電復(fù)位后,默認(rèn)選擇片內(nèi)RC振蕩器作為時(shí)鐘源[3]。之后,用戶可以通過(guò)寄存器的設(shè)置來(lái)切換時(shí)鐘源:選擇主振蕩器或者RTC振蕩器。一般情況下,由于片內(nèi)RC振蕩器的輸出頻率精度較低,用戶在上電復(fù)位完成后,都會(huì)切換到輸出頻率精度較高的主振蕩器作為時(shí)鐘源。主振蕩器和RTC振蕩器的電路設(shè)計(jì)很簡(jiǎn)單:使用石英晶體外加兩個(gè)電容和微控制器內(nèi)部的反相器就可以完成。基本的電路原理圖如2所示。

圖2 時(shí)鐘電路原理圖

使用多個(gè)時(shí)鐘源的目的是:當(dāng)出現(xiàn)極端情況,如主振蕩器和RTC振蕩器都失效時(shí),系統(tǒng)會(huì)自動(dòng)切換到片內(nèi)RC振蕩器作為時(shí)鐘源,確保系統(tǒng)的安全性。

(2)鎖相環(huán)。和傳統(tǒng)的8位單片機(jī)十幾MHz的時(shí)鐘頻率相比,Cortex-M內(nèi)核微控制器的時(shí)鐘頻率較高,大都在幾十MHz到200 MHz之間。時(shí)鐘頻率的提升是利用了內(nèi)部的鎖相環(huán)(PLL)完成,其工作原理是利用相位檢測(cè)器,根據(jù)輸入頻率和輸出頻率之間的差值輸出不同的電流,進(jìn)而控制流控振蕩器(Current-Controlled Qscillator,CCO)的振蕩頻率,直至兩者差值為0,反饋系統(tǒng)達(dá)到穩(wěn)定,輸出最終的穩(wěn)定頻率[4]。

使用PLL在微控制器內(nèi)部進(jìn)行時(shí)鐘倍頻的好處是可以使微控制器外圍電路的工作頻率保持在十幾MHz,減輕電路布線的難度,不需要考慮高頻電路布線時(shí)的傳輸線效應(yīng)。

(3)時(shí)鐘分頻。PLL輸出的頻率經(jīng)過(guò)分頻后提供給微控制器內(nèi)核和片內(nèi)集成的眾多外設(shè)使用,如以太網(wǎng)、串口和定時(shí)器等模塊。每一個(gè)外設(shè)都可以單獨(dú)設(shè)置時(shí)鐘的分頻系數(shù),用戶可以根據(jù)外設(shè)的實(shí)際工作情況進(jìn)行選擇。同時(shí)對(duì)于在具體應(yīng)用中沒(méi)有使用的外設(shè),還可以關(guān)閉其時(shí)鐘輸入,減少系統(tǒng)功耗[5]。

2 利用MDK軟件進(jìn)行時(shí)鐘系統(tǒng)的設(shè)計(jì)

由于Cortex-M3內(nèi)核微控制器的時(shí)鐘系統(tǒng)結(jié)構(gòu)比較復(fù)雜,時(shí)鐘系統(tǒng)的初始化配置和設(shè)計(jì)需要涉及到大量的硬件寄存器,用戶必須要搞清楚這些寄存器每一位的含義才能正確的配置,如主振蕩器控制這樣一個(gè)簡(jiǎn)單的功能,就需要去了解系統(tǒng)控制和狀態(tài)寄存器(SCS)的具體定義,見(jiàn)表1[6]。

表1 系統(tǒng)控制和狀態(tài)寄存器(SCS)位描述

同時(shí)在鎖相環(huán)對(duì)時(shí)鐘的倍頻處理中,用戶還需要根據(jù)實(shí)際所需的內(nèi)核時(shí)鐘去計(jì)算分頻系數(shù)和倍頻系數(shù),并按照一定配置過(guò)程:使能鎖相環(huán) → 等待鎖相環(huán)穩(wěn)定 → 連接鎖相環(huán) → 讀取鎖相環(huán)狀態(tài)才能完成。因此對(duì)于初學(xué)者而言,正確進(jìn)行時(shí)鐘系統(tǒng)的初始化和設(shè)計(jì)具有相當(dāng)?shù)碾y度[7]。

RealView Microcontroller Development Kit(以下簡(jiǎn)稱MDK)開(kāi)發(fā)軟件為微控制器時(shí)鐘系統(tǒng)的正確配置提供了良好的解決方案[8]。具體包括3項(xiàng)功能:① 提供集成開(kāi)發(fā)環(huán)境,進(jìn)行文件的編寫(xiě)、編譯,鏈接和下載;② 提供了圖形用戶界面,自動(dòng)配置啟動(dòng)代碼;③ 提供強(qiáng)大的虛擬仿真功能,能夠?qū)ζ瑑?nèi)外設(shè)的硬件寄存器進(jìn)行實(shí)時(shí)的仿真和測(cè)試。

以MDK4.7為例,在軟件的安裝目錄KEILARMStartup下面,提供了軟件所支持的微控制器的啟動(dòng)代碼,LPC1768芯片的啟動(dòng)代碼為startup_LPC17xx.s和system_LPC17xx.c。其中,startup_LPC17xx.s是匯編格式的啟動(dòng)代碼,主要完成系統(tǒng)堆棧的配置、中斷向量表的建立等工作;system_LPC17xx.c是c語(yǔ)言格式的啟動(dòng)代碼,主要完成時(shí)鐘系統(tǒng)的設(shè)置[9]。

將system_LPC17xx.c加入到工程項(xiàng)目中,可以在MDK軟件中看到時(shí)鐘系統(tǒng)的初始化源代碼。由于源代碼需要用戶去閱讀芯片手冊(cè),了解大量硬件寄存器的用法。為了方便用戶配置,MDK軟件提供了和啟動(dòng)代碼對(duì)應(yīng)的圖形配置界面,如圖3所示。

圖3 時(shí)鐘配置的圖形用戶界面

在該配置界面中,用戶可以通過(guò)下拉菜單進(jìn)行時(shí)鐘源的選擇,內(nèi)核時(shí)鐘以及外設(shè)時(shí)鐘分頻設(shè)置,在鎖相環(huán)參數(shù)的配置上,還可以直接輸入M和N等分頻和倍頻系數(shù)的值,系統(tǒng)會(huì)自動(dòng)計(jì)算出最后的內(nèi)核時(shí)鐘。整個(gè)配置過(guò)程簡(jiǎn)單直觀,降低了開(kāi)發(fā)難度,提高了開(kāi)發(fā)效率。

3 利用MDK軟件進(jìn)行時(shí)鐘系統(tǒng)的虛擬仿真

MDK軟件提供了軟件仿真和硬件仿真兩種模式。軟件仿真可以在沒(méi)有硬件平臺(tái)的情況下模擬片內(nèi)所有外設(shè)的硬件寄存器,用戶可以對(duì)每一個(gè)硬件寄存器進(jìn)行仿真和觀測(cè),并能夠?qū)崟r(shí)顯示用戶代碼對(duì)相關(guān)硬件寄存器的修改。同時(shí)提供了觀察(Watch)窗口,用戶可以添加需要觀測(cè)的變量,進(jìn)行數(shù)據(jù)的監(jiān)測(cè)[10]。

完成時(shí)鐘系統(tǒng)的初始化配置后,可以利用MDK軟件強(qiáng)大的虛擬仿真功能進(jìn)行時(shí)鐘系統(tǒng)的仿真[11]。

(1)時(shí)鐘源選擇仿真窗口(Clock Source Selection)。時(shí)鐘源選擇仿真窗口實(shí)時(shí)顯示時(shí)鐘源選擇寄存器(CLKSRCSEL)的配置值以及各個(gè)時(shí)鐘的頻率,并顯示最后的配置結(jié)果,如圖4所示。

圖4 時(shí)鐘源選擇仿真窗口

(2)時(shí)鐘分頻仿真窗口(Clock Divers)。時(shí)鐘分頻仿真窗口主要顯示了內(nèi)核時(shí)鐘、USB模塊和外設(shè)時(shí)鐘的分頻設(shè)置,如圖5所示。最上方顯示的是內(nèi)核時(shí)鐘分頻(CPU Clock Configuration),用于配置微控制器的內(nèi)核時(shí)鐘,也是系統(tǒng)運(yùn)行時(shí)鐘。中間部分是USB模塊時(shí)鐘分頻(USB Clock Configuration),對(duì)于USB模塊而言,必須工作在穩(wěn)定的48MHz時(shí)鐘之下。最下方是外設(shè)的時(shí)鐘分頻選擇(Peripheral Clock Selection),每一個(gè)片內(nèi)外設(shè)都可以有一分頻、二分頻、四分頻和八分頻四種選擇,默認(rèn)使用四分頻[12]。

圖5 時(shí)鐘分頻仿真窗口

(3)鎖相環(huán)仿真窗口(Phase Locked Loop0)。鎖相環(huán)仿真窗口實(shí)時(shí)顯示了與鎖相環(huán)配置相關(guān)的寄存器的配置值,包括鎖相環(huán)控制寄存器、鎖相環(huán)配置寄存器、鎖相環(huán)狀態(tài)寄存器和饋送寄存器,并顯示了根據(jù)這些配置參數(shù)得到的鎖相環(huán)輸出時(shí)鐘(PLLCLK),如圖6所示。用戶通過(guò)實(shí)時(shí)觀察相關(guān)的配置值和最后的輸出時(shí)鐘,可以判斷時(shí)鐘的配置是否正確,以便進(jìn)行代碼的修正[13]。

圖6 鎖相環(huán)仿真窗口

(4)時(shí)鐘系統(tǒng)仿真圖(Clock Generation Schematic)。完成時(shí)鐘系統(tǒng)的所有配置之后,MDK軟件可以生成整個(gè)時(shí)鐘系統(tǒng)的仿真結(jié)構(gòu)圖,如圖7所示。

圖7 時(shí)鐘系統(tǒng)仿真圖

時(shí)鐘系統(tǒng)仿真圖直觀的展示從輸入到輸出的整個(gè)時(shí)鐘系統(tǒng)的結(jié)構(gòu)圖。從圖7可以看出:在時(shí)鐘源選擇上,選擇了由外部晶振構(gòu)成的主振蕩器(MOSC),時(shí)鐘頻率為12 MHz。該時(shí)鐘作為PLL0的輸入時(shí)鐘,經(jīng)過(guò)鎖相環(huán)的分頻和倍頻后,輸出的時(shí)鐘(PLLCLK)為400 MHz,再經(jīng)過(guò)四分頻后輸出的系統(tǒng)主時(shí)鐘(CCLK)為100 MHz。外設(shè)時(shí)鐘可以為系統(tǒng)主時(shí)鐘的一分頻、二分頻、四分頻和八分頻。USB模塊的時(shí)鐘源也由主振蕩器提供,經(jīng)過(guò)PLL1倍頻后在進(jìn)行分頻,最后得到穩(wěn)定的48 MHz的USB時(shí)鐘[14]。

4 結(jié) 語(yǔ)

利用MDK軟件提供的初始化代碼配置界面,解決了時(shí)鐘系統(tǒng)初始化過(guò)程繁雜的問(wèn)題,用戶不再需要去掌握幾十個(gè)硬件寄存器的含義,只需要在圖形用戶界面上進(jìn)行簡(jiǎn)單的勾選即可[15]。同時(shí)借助MDK軟件提供的虛擬仿真功能,用戶在沒(méi)有硬件平臺(tái)的基礎(chǔ)上,也可以進(jìn)行時(shí)鐘系統(tǒng)以及片內(nèi)外設(shè)的仿真和測(cè)試:提供的硬件寄存器仿真窗口,實(shí)時(shí)根據(jù)用戶代碼的配置進(jìn)行相應(yīng)信息的顯示,方便用戶進(jìn)行源碼的測(cè)試;生成的系統(tǒng)時(shí)鐘圖,直觀的展示了時(shí)鐘源的選擇,時(shí)鐘的倍頻和分頻等一系列過(guò)程,并顯示了最終的時(shí)鐘配置結(jié)果,方便用戶檢驗(yàn)配置的結(jié)果[16]。

猜你喜歡
用戶系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)注用戶
關(guān)注用戶
關(guān)注用戶
Camera360:拍出5億用戶
主站蜘蛛池模板: 米奇精品一区二区三区| 亚洲色图在线观看| 久久精品日日躁夜夜躁欧美| 亚洲男人在线天堂| 啪啪免费视频一区二区| 58av国产精品| 欧美成人影院亚洲综合图| 成人va亚洲va欧美天堂| 欧美日本视频在线观看| 精品国产自在在线在线观看| 美女视频黄频a免费高清不卡| 蜜桃视频一区二区| 国产网友愉拍精品视频| 国产精品久久久久久久久久98 | 无码'专区第一页| 国产三级成人| 强乱中文字幕在线播放不卡| 亚洲综合欧美在线一区在线播放| 日本午夜影院| 这里只有精品在线| 五月天香蕉视频国产亚| 五月婷婷综合色| 91无码人妻精品一区| 欧美午夜小视频| 国产精选小视频在线观看| 在线欧美日韩国产| 久久婷婷人人澡人人爱91| 玖玖精品在线| 国产视频a| 日本高清在线看免费观看| 99热最新在线| 久热这里只有精品6| 欧美精品1区2区| 国产亚洲精品91| 亚洲视频免费播放| 国产精品综合色区在线观看| 亚洲精品男人天堂| 天天做天天爱夜夜爽毛片毛片| 谁有在线观看日韩亚洲最新视频| 久久精品女人天堂aaa| 国产精品无码作爱| 欧美国产日本高清不卡| 狠狠综合久久| 亚洲中文字幕国产av| 亚洲美女一级毛片| 欧美国产中文| 欧美第一页在线| 99热这里只有精品免费国产| 玩两个丰满老熟女久久网| 欧美午夜在线观看| 欧美在线伊人| 精品午夜国产福利观看| 亚洲欧美成人综合| 国产成a人片在线播放| 久久婷婷六月| 国产亚洲精品自在线| 国产精品主播| 国产成人一级| 国产99免费视频| 日韩精品成人网页视频在线| 久久综合九色综合97婷婷| 直接黄91麻豆网站| 亚洲三级片在线看| 高清免费毛片| 少妇精品网站| 亚洲人成电影在线播放| 久久国产免费观看| v天堂中文在线| 亚洲一级毛片免费看| 日本午夜精品一本在线观看| 国产亚洲精品yxsp| 激情综合激情| 国产美女一级毛片| 国产精品无码一区二区桃花视频| 久久婷婷六月| 亚洲一区黄色| 国产精品亚洲va在线观看| 91亚洲精选| 毛片网站在线播放| 精品一區二區久久久久久久網站| 毛片网站在线播放| 人妻无码一区二区视频|