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

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]在ARM系統(tǒng)中,有時需要精確的時間測量。通常,取時間的C函數(shù)(如gettime()等)不僅通用性差(必須包含頭文件DOS.H,且不支持Unix、Linux和標(biāo)準(zhǔn)C),明顯不適用于ARM系統(tǒng)[1];更成

在ARM系統(tǒng)中,有時需要精確的時間測量。通常,取時間的C函數(shù)(如gettime()等)不僅通用性差(必須包含頭文件DOS.H,且不支持Unix、Linux和標(biāo)準(zhǔn)C),明顯不適用于ARM系統(tǒng)[1];更成問題的是,其最短時間只能到10-2 秒級,不能提供更短的時間分度。根本原因在于: 這類函數(shù)是基于系統(tǒng)實(shí)時時鐘(RTC)的,而RTC通常采用標(biāo)準(zhǔn)化鐘表晶振,頻率只有32.768 kHz而已[2]。

然而很多應(yīng)用涉及μs級的時間計(jì)量,這是標(biāo)準(zhǔn)化了的RTC以及基于它的時間函數(shù)所無能為力的。筆者在移植DES算法到ARM系統(tǒng)的實(shí)驗(yàn)過程中,便遇到過要定量評估加密算法耗時多少的問題,發(fā)現(xiàn)的確不能用上述常規(guī)的C函數(shù)解決。經(jīng)對ARM芯片結(jié)構(gòu)的考察,發(fā)現(xiàn)其內(nèi)置的WatchDog系統(tǒng)是以系統(tǒng)時鐘驅(qū)動的,定量性能應(yīng)該很好,區(qū)分時間間隔的精細(xì)程度也應(yīng)該足夠。于是根據(jù)所用ARM芯片的原廠家數(shù)據(jù)手冊中的說明,借用 WatchDog編寫了自己的計(jì)時函數(shù),使用起來也比較方便??紤]到ARM芯片都帶有內(nèi)置看門狗,筆者覺得這種方法可算是一個不錯的“過渡性”解決方案,故在此加以介紹,供同行們參考并指正。

1 測量原理

ARM芯片中的看門狗,其原始功能是監(jiān)視CPU核心運(yùn)行的某些超時。這些超時的發(fā)生,通常是因?yàn)楦蓴_和系統(tǒng)錯誤等造成的程序運(yùn)行混亂。一旦發(fā)生這類情形,看門狗便請求中斷服務(wù)或發(fā)出復(fù)位脈沖重啟系統(tǒng)。為了達(dá)到這樣的目的,其計(jì)時原理必須獨(dú)立于系統(tǒng)中的任何進(jìn)程。實(shí)際上,WatchDog是獨(dú)立的硬件邏輯,其計(jì)時脈沖直接取自系統(tǒng)主時鐘,因此它與RTC一樣具備實(shí)時性和獨(dú)立性,借用看門狗的計(jì)時體系來實(shí)現(xiàn)高精度時間測量是合理的。

先以實(shí)驗(yàn)中用到的S3C44B0X為例(該實(shí)驗(yàn)所用的ARM開發(fā)板型號為NETARM300),具體談?wù)効撮T狗的工作原理。其原理框圖如圖1所示,圖中MCLK即系統(tǒng)主時鐘[3]。

 

圖1 S3C44B0X內(nèi)嵌看門狗硬件原理框圖

從圖中可以看出,系統(tǒng)主時鐘MCLK經(jīng)過可編程預(yù)分頻、可選固定分頻后,進(jìn)入WTCNT(硬件系統(tǒng)的計(jì)時計(jì)數(shù)器,16位)計(jì)數(shù)。根據(jù)器件手冊,計(jì)數(shù)時間間隔t_watchdog=1/(MCLK/(Prescaler value+1)/Division_factor )。式中,參數(shù)Prescaler value的取值為0~28-1;Division_factor有16、32、64、128四種取值。如果復(fù)位信號輸出允許(即WTCON的位0置1),那么一旦計(jì)數(shù)器WTCNT的計(jì)數(shù)超過WTDAT允許的范圍,看門狗就會將CPU復(fù)位。本實(shí)驗(yàn)過程中屏蔽掉了這種復(fù)位和中斷請求功能,僅讓它對脈沖計(jì)數(shù)。

控制寄存器WTCON的有關(guān)各位定義圖中已給出(如需詳細(xì)解釋可查閱器件手冊,如參考文獻(xiàn)[3]),其他全為保留位,可全置為0。

至于MCLK具體值的計(jì)算,可以查驗(yàn)系統(tǒng)中的晶振參數(shù)(頻率),讀取系統(tǒng)時鐘的PLL寄存器(如S3C44B0X的PLLCON)后算得。計(jì)算的方法都已在具體ARM芯片手冊中給出[4]。

2 測量算法實(shí)現(xiàn)和實(shí)驗(yàn)結(jié)果

按照所需參數(shù)設(shè)置的看門狗定時器控制寄存器WTCON的值(如前所述),在待測代碼段執(zhí)行之前開啟看門狗定時器;等其執(zhí)行完畢則關(guān)閉看門狗定時器,讀取WTCNT的值即可算得運(yùn)行時間。作為一個具體示例,筆者實(shí)驗(yàn)中所實(shí)現(xiàn)的算法如下:

(1) 計(jì)時算法

void my_CountStart() {

rWTCON=((MCLK/1000000-1)<<8)|(2<<3);   //1 MHz/64,Watchdog,nRESET,中斷禁止

rWTDAT=0xffff;

rWTCNT=0xffff;

rWTCON=((MCLK/1000000-1)<<8)|(2<<3)|(1<<5);   //計(jì)時開始

}

int my_CountStop() {

int i=0;

rWTCON=((MCLK/1000000-1)<<8)|(2<<3);   //計(jì)時結(jié)束

i=0xffff-rWTCNT;//每16 μs計(jì)數(shù)一次

return i*16;

}

(2) 應(yīng)用

int Main() {

my_CountStart();

Des_Go(buf, buf, sizeof(str), key, sizeof(key), ENCRYPT, Is3DES);

encrypt_time=my_CountStop();

}

需要指出: 在改變WTCON的值之前應(yīng)將原有值保存,待測量完成后再復(fù)原WTCON。之所以強(qiáng)調(diào)這一點(diǎn),是因?yàn)橄到y(tǒng)別處很可能在使用看門狗功能。

實(shí)驗(yàn)當(dāng)中,對長度為189字節(jié)的字符串采用3次DES加密。密鑰長度為15位,測得的加密時間為28 832 μs,解密時間為28 896 μs??s短字符串長度,測得的加密時間基本呈線性變化: 字符串長度為107字節(jié)而其他地方不變時,加密耗時16 928 μs,解密耗時16 948 μs;字符串長度為41字節(jié)而其他地方不變時,加密耗時7 424 μs,解密耗時7 424 μs。對于相同長度的字符串,密鑰長度的改變對加密/解密時間的影響不是很大。

值得一提的是,剛開始實(shí)驗(yàn)時,被加密字符串分別取為190字節(jié)和75字節(jié),測得耗時分別是34 032 μs和16 928 μs,顯然與倍增的關(guān)系相差很遠(yuǎn)。分析程序后發(fā)現(xiàn),原來問題出在加密算法中間的打印語句“Uart_Printf("ncounting begin...!!!")”上。原來以為它耗時很少,故沒有將它從加密算法中移走;移走后再試,耗時大減,分別為29 600 μs和12 496 μs,與字符數(shù)倍增、時間倍增的預(yù)期基本相符。上面的實(shí)驗(yàn),還使筆者得知該打印語句占用了4 432 μs。稍微修改條件,繼續(xù)實(shí)驗(yàn): 當(dāng)上述打印語句的字節(jié)數(shù)擴(kuò)充為原來的4倍時,測得該語句耗時17 728 μs??梢?耗時與打印內(nèi)容的字節(jié)數(shù)基本上成正比;另外,這種打印語句與加密/解密算法本身相比,并不是想當(dāng)然地只占用一點(diǎn)點(diǎn)時間。(上述數(shù)據(jù)與PC機(jī)串口通信波特率的設(shè)置無明顯關(guān)系。實(shí)際測試結(jié)果為: 波特率由115 200 bps下降到57 600 bps,沒有可以察覺到的差別。)

3 測量方法討論

ARM內(nèi)置看門狗用作時間度量的適用范圍,大體以μs數(shù)量級為界。比如,從S3C44B0X的器件特性說明中可知,MCLK在看門狗計(jì)時器里的分頻比至少是1/16。典型情況下,MCLK=60 MHz,則看門狗能夠分辨的最短時間單元t=1/(60 MHz/16)=0.27 μs。統(tǒng)計(jì)誤差約為t/2,即0.1μs數(shù)量級。就μs級的時間測量精度而言,相對誤差有可能達(dá)到1%~10%;不過,這對很多速度估算的場合來說還是可以接受的。如果被測時間在10 μs以上,那就沒有任何問題,可以認(rèn)為是相當(dāng)精確的了。

這種思路還可用來實(shí)現(xiàn)精確延時,因?yàn)樗亩〞r不依賴于指令執(zhí)行時間(指令執(zhí)行要受到系統(tǒng)調(diào)度等的影響,因而有很多不確定因素),而取決于對主時鐘的硬件分頻計(jì)數(shù)。

由此實(shí)驗(yàn)推廣,ARM內(nèi)置看門狗可以作為此類系統(tǒng)中的第二時鐘存在。對于那些時間要求精確到μs、RTC的精度無法滿足的應(yīng)用,這種處理都不失為一種準(zhǔn)確、高效的方法。

參考文獻(xiàn)

[1] 李文通,劉天放,畢衛(wèi)明,等. Borland C++ 3.1庫函數(shù)手冊[M]. 北京:北京航空航天大學(xué)出版社,1994.

[2] 李巖,榮盤祥. 基于S3C44B0X嵌入式μCLinux系統(tǒng)原理及應(yīng)用[M]. 北京:清華大學(xué)出版社,2005.

[3] Samsung Electronics. S3C44B0X RISC MICROPROCESSEOR WATCHDOG TIMER[M/CD].http://www.meritech.co.kr/eng/products/product_view.php?num=5.[4] Samsung Electronics. S3C44B0X RISC MICROPROCESSEOR CLOCK & POWER MANAGEMENT[M/CD].http://www.meritech.co.kr/eng/products/product_view.php?num=5.

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

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計(jì)中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計(jì)工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉