国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA與DSP的DS12CR887精密時(shí)鐘設(shè)計(jì)

2016-09-02 05:06張芳園
關(guān)鍵詞:譯碼寄存器時(shí)序

鄭 輝,張芳園

(哈爾濱工程大學(xué)信息與通信工程學(xué)院,哈爾濱 150001)

?

基于FPGA與DSP的DS12CR887精密時(shí)鐘設(shè)計(jì)

鄭輝,張芳園

(哈爾濱工程大學(xué)信息與通信工程學(xué)院,哈爾濱 150001)

DS8887是一款內(nèi)置晶振和鋰電池的高精度時(shí)鐘芯片.介紹一種基于FPGA和DSP使用DS887精密時(shí)鐘芯片的設(shè)計(jì)方案.采用FPGA可以縮小設(shè)計(jì)周期,便于硬件實(shí)現(xiàn),提高系統(tǒng)的穩(wěn)定性;通過DSP控制實(shí)現(xiàn)對(duì)時(shí)間的讀取與寫入.本設(shè)計(jì)使得時(shí)鐘的讀取運(yùn)行時(shí)間短,操作簡單,系統(tǒng)穩(wěn)定.

精密時(shí)鐘;DSP;現(xiàn)場可編程邏輯器件(FPGA)

日歷芯片作為為系統(tǒng)提供精確時(shí)鐘的工具,是許多系統(tǒng)必須的一部分.按照接口的不同時(shí)鐘芯片可分為并行接口時(shí)鐘和串行接口時(shí)鐘,其中并行接口時(shí)鐘傳輸速度快、系統(tǒng)結(jié)構(gòu)復(fù)雜,串行接口時(shí)鐘結(jié)構(gòu)簡單、使用方便、傳輸速度慢[1-4].系統(tǒng)設(shè)計(jì)時(shí)對(duì)時(shí)鐘芯片的要求主要體現(xiàn)在兩方面[5]:一是要求時(shí)鐘芯片的精度要高;二是能夠斷電工作.達(dá)拉斯公司生產(chǎn)的DS12CR887時(shí)鐘芯片是一款功能豐富的并行接口時(shí)鐘芯片,能夠刷新星期、年、月、日、時(shí)、分、秒等信息,內(nèi)部還增加了世紀(jì)寄存器硬件電路.本文介紹一種基于FPGA和DSP的DS12CR887精密時(shí)鐘芯片的設(shè)計(jì)方案,可實(shí)現(xiàn)由DSP控制對(duì)日歷芯片的讀寫操作.

1 DS12CR887芯片介紹

DS12CR887是由美國達(dá)拉斯半導(dǎo)體公司生產(chǎn)的CMOS并行實(shí)時(shí)時(shí)鐘芯片.DS12CR887內(nèi)置晶振和鋰電池,并將時(shí)鐘電路、圍電路、及其相關(guān)電路等嵌裝成一體.DS12CR887具有與微處理器連接的并行接口,可實(shí)現(xiàn)直接應(yīng)用于其他智能化設(shè)備中.

DS12CR887具有以下主要功能特點(diǎn):

1)可內(nèi)部供電.檢測外部電壓情況,當(dāng)外部電壓低于3V時(shí),芯片自動(dòng)選擇由內(nèi)部的鋰電池供電,保證時(shí)鐘正常運(yùn)行,防止數(shù)據(jù)丟失.

2)具有閏年自動(dòng)校正功能,實(shí)現(xiàn)準(zhǔn)確計(jì)時(shí).

3)可選擇夏令時(shí)運(yùn)行方式.

4)有MOTOROLA和INTEL兩種總線時(shí)序,可以根據(jù)需求靈活的選擇.

5)內(nèi)部有掉電保持RAM單元,可以存儲(chǔ)掉電時(shí)的時(shí)鐘日歷,報(bào)警信息,狀態(tài)控制字以及用戶的信息數(shù)據(jù).

6)內(nèi)地址空間為00H~7FH,其中00H~09H為年、月、日、時(shí)、分、秒、星期以及鬧秒、鬧分、鬧時(shí)的存儲(chǔ)單元.0AH~0DH單元分別為控制據(jù)存器A、B、C、D.通過訪問A、B、C、D四個(gè)寄存器可隨時(shí)設(shè)置和了解DS12CR887的工作方式.0EH~7FH為用戶RAM區(qū),可以用來在系統(tǒng)掉電時(shí)保存數(shù)據(jù).

2 系統(tǒng)硬件設(shè)計(jì)

本設(shè)計(jì)中系統(tǒng)控制芯片DSP采用ADSP系列芯片TS201.TS201芯片TS201是ADI公司第二代TigerSHARC系列的新成員,擁有600MHz的內(nèi)核工作頻率,具有強(qiáng)大的計(jì)算能力.

FPGA芯片為Xilinx公司的Sprant-6系列芯片XC6SLX100-3CSG484.XC6SLX100-3CSG484普通差分I/O接口傳輸數(shù)據(jù)速率最高達(dá)1 080Mb/s,完全能夠滿足傳輸需求,所以選擇LX系列芯片.

DS12CR887的數(shù)據(jù)線和控制線直接連到FPGA上,將DS12CR887的復(fù)位引腳、中斷引腳直接通過上拉電阻拉高,使得芯片一直處于工作狀態(tài).模式選擇引腳拉低,選擇INTEL模式.DSP的總線與FPGA連接,其硬件連接圖如圖1所示.

圖1 精密時(shí)鐘的硬件連接圖

3 精確時(shí)鐘的設(shè)計(jì)與實(shí)現(xiàn)

3.1精確時(shí)鐘的時(shí)序分析

DS12CR887有兩種總線時(shí)序的工作方式,此設(shè)計(jì)中選擇INTEL總線時(shí)序方式,其寫命令時(shí)序圖如圖2所示,讀命令時(shí)序如圖3所示.

圖2 Intel模式的寫時(shí)序圖

圖3 Intel模式的讀時(shí)序圖

通過時(shí)序圖可以看出,無論是在讀操作時(shí)還是在寫操作時(shí),DS12CR887的復(fù)用總線上均先出現(xiàn)地址,后出現(xiàn)數(shù)據(jù).在執(zhí)行寫操作時(shí),片選CS信號(hào)有效情況下,將地址鎖存信號(hào)AS下降沿時(shí)的總線上的數(shù)據(jù)鎖存為地址,將讀寫信號(hào)RW上升沿時(shí)的總線數(shù)據(jù)寫入DS12CR887.讀操作同樣首先將數(shù)據(jù)線上的信號(hào)鎖存為DS12CR887的地址,然后DS12CR887的數(shù)據(jù)線上才輸出有效數(shù)據(jù).

3.2精確時(shí)鐘的寄存器設(shè)計(jì)

DS12CR887有四個(gè)寄存器,其中本文用到了寄存器A和寄存器B.兩個(gè)寄存器的功能表如表1和表2所示.

表1 寄存器A

表2 寄存器B

UIP是狀態(tài)標(biāo)志位,用來標(biāo)志是否將進(jìn)行更新,此外UIP會(huì)受到寄存器B的影響,不受復(fù)位信號(hào)的影響.當(dāng)寄存器B的SET位設(shè)為1時(shí),UIP被設(shè)為0并禁止更新.

DV0~DV2用來控制復(fù)位分頻器和晶體振蕩器,其中若使晶體振蕩器開啟并保持時(shí)鐘運(yùn)行則設(shè)為010,若使晶體振蕩器開啟,但分頻器保持復(fù)位狀態(tài)其設(shè)置為11X.本設(shè)計(jì)中設(shè)為010.

RS寄存器作用是選擇周期中斷的頻率和方波的頻率,此設(shè)計(jì)中我們?nèi)拷?

SET為0時(shí)芯片正常更新,為1時(shí)禁止更新,本設(shè)計(jì)選為禁止更新.

PIE、AIE、UIE是控制是否允許輸出IRQ信號(hào)的寄存器,本設(shè)計(jì)選擇不輸出中斷.

SQWE設(shè)置SQW引腳是否有方波輸出.本設(shè)計(jì)選擇有方波輸出.

DM選擇時(shí)鐘輸出的碼型,當(dāng)DM=0時(shí),輸出為二進(jìn)制,當(dāng)DM=1時(shí),輸出為BCD.本設(shè)計(jì)選擇BCD形式.

24/12位是選擇時(shí)間采取12小時(shí)制還是24小時(shí)制的寄存器.

DSE是夏令時(shí)允許標(biāo)志,本設(shè)計(jì)允許夏令時(shí)標(biāo)志.

3.3精確時(shí)鐘的總體設(shè)計(jì)

設(shè)計(jì)通過FPGA為DS12CR887做讀寫時(shí)序.DSP來寫入需要的數(shù)據(jù),F(xiàn)PGA通過地址譯碼的方式將所需要寫入的數(shù)據(jù)儲(chǔ)存到RAM中;FPGA每秒都會(huì)讀取DS12CR887中的數(shù)據(jù),并將其存放在寄存器中,在收到DSP的讀取命令時(shí),將數(shù)據(jù)傳輸給DSP.其系統(tǒng)結(jié)構(gòu)圖如圖4所示.

圖4 精密時(shí)鐘的總體框圖

3.4精密時(shí)鐘的FPGA實(shí)現(xiàn)

精密時(shí)鐘的FPGA的設(shè)計(jì)包括DS12CR887的讀模塊,DS12CR887的寫模塊以及DS12CR887的讀寫總線控制模塊.

總線控制模塊通過地址譯碼的方式來控制FPGA何時(shí)接收DSP給出的寫入DS12CR887數(shù)據(jù),何時(shí)向DSP從發(fā)送時(shí)鐘芯片讀到的時(shí)間,同時(shí)還控制DS12CR887的四路信號(hào)控制線即AS、DS、CS、RW在讀寫兩種狀態(tài)的時(shí)序之間的切換.圖5為FPGA的DS12CR887的讀寫總線控制模塊.

寫模塊將DSP需要寫入時(shí)鐘芯片的數(shù)據(jù)存儲(chǔ)到RAM中,當(dāng)DSP給出譯碼地址時(shí)觸發(fā)寫操作,將RAM中準(zhǔn)備好的數(shù)據(jù)寫入到時(shí)鐘芯片中.其FPGA頂層模塊如圖6所示.

讀模塊處于一直觸發(fā)的狀態(tài),它將在每一秒都會(huì)讀取DS12CR887的數(shù)據(jù)并將其存在寄存器中,再通過地址譯碼的方式,將寄存器中的數(shù)據(jù)送給DSP.讀模塊的FPGA頂層模塊圖如圖7所示.

圖5 DS12CR887總線控制模塊

圖6 DS12CR887寫模塊

3.5精密時(shí)鐘的DSP實(shí)現(xiàn)

DSPA采用C語言編寫,寫模塊包含的地址譯碼有:

#defineREG_Write_DATA_DS12887_regA0x3ffffc00 // 寄存器A

#defineREG_Write_DATA_DS12887_regB1 0x3ffffc10 // 寄存器B

#defineREG_Write_DATA_DS12887_sec0x3ffffc20 // 秒

#defineREG_Write_DATA_DS12887_min0x3ffffc30 // 分

#defineREG_Write_DATA_DS12887_hour0x3ffffc40 // 時(shí)

#defineREG_Write_DATA_DS12887_week0x3ffffc50 // 星期

#defineREG_Write_DATA_DS12887_date0x3ffffc60 // 日期

#defineREG_Write_DATA_DS12887_month0x3ffffc70 //月份

#defineREG_Write_DATA_DS12887_year0x3ffffc80 //年

寫入一個(gè)字節(jié)的程序?yàn)椋篟TC_Write_DATA_C=(int*)REG_Write_DATA_DS12887_sec;

*RTC_Write_DATA_C=BPV_RTC_TIME_Write.Sec;asm("nop;;");

DSP讀模塊的地址譯碼為:

#defineREG_DATA_A0x3ffff002 // **年 月 日

#defineREG_DATA_B0x3ffff000 // 星期 時(shí) 分 秒

讀一個(gè)字節(jié)的程序?yàn)椋?/p>

year=DateA>>16;

year=year&0x000000ff;BPV_RTC_TIME_Read.Year=year;

asm("nop;;");

圖7 DS12CR887讀模塊

4 成果驗(yàn)證及分析

為了驗(yàn)證設(shè)計(jì)方案的正確性,利用測試平臺(tái)對(duì)本次硬件設(shè)計(jì)進(jìn)行驗(yàn)證.

圖8為ChipScope捕捉到的讀狀態(tài)的控制線時(shí)序圖,于此同時(shí)FPGA從DS12CR887芯片中讀出來的數(shù)據(jù)如圖9所示.

圖8 DS12CR887讀時(shí)序圖

圖9 DS12CR887讀數(shù)據(jù)

通過FPGA100M時(shí)鐘采樣的結(jié)果可以看出,此設(shè)計(jì)可以準(zhǔn)確的創(chuàng)造出時(shí)鐘芯片所需要的INTEL工作模式的讀時(shí)序,并且可以讀出DS12CR887中的時(shí)間.

5 結(jié) 語

由于DS12CR887是地址數(shù)據(jù)復(fù)用總線時(shí)序,與DSP的讀寫時(shí)序不同,所以在接口設(shè)計(jì)時(shí)時(shí)序分析特別重要.本文采用FPGA做DS12CR887的總線時(shí)序,用DSP地址譯碼做總線的開關(guān).系統(tǒng)用DSP+FPGA的模式,使系統(tǒng)硬件平臺(tái)更加簡單、穩(wěn)定、靈活.

[1]徐文波.XilinxFPGA開發(fā)實(shí)用教程[M]. 北京: 清華大學(xué)出版社, 2013.

[2]劉書明.ADSPTS20XS系列DSP原理與應(yīng)用設(shè)計(jì)[M]. 北京: 電子工業(yè)出版社, 2007.

[3]李洪濤.VerilogHDL與FPGA開發(fā)設(shè)計(jì)與應(yīng)用[M]. 北京: 國防工業(yè)出版社, 2013.

[4]楊偉強(qiáng). 新型時(shí)鐘芯片DS12CR887的應(yīng)用設(shè)計(jì)[J]. 電子元器件應(yīng)用, 2010(12): 35-37.

[5]LIC,ZHANGJ,YANGY.Analysisonpredictionoflong-termclockerrorofcomputertime[C]// 2010InternationalConferenceonFutureComputer,ControlandCommunication,FCCC, 2010, 2(12): 206-209.

Design of precision interval clock based on FPGA and DSP

ZHENG Hui, ZHANG Fang-yuan

(School of Information and Communication Engineering, Harbin Engineering University, Harbin 150001, China)

DS8887isahighprecisionRTCwhichhasbuilt-incrystalvibrationandlithium-ionbatteries.ThispaperintroduceddesignofusingDS887precisionclockchipbasedonFPGAandDSP.UsingFPGAcanreducedesigncycle,madehardwareimplementationeasyandimprovethestabilityofthesystem.Thisdesignmadereadtimeshort,operationsimple,systemstable.

precisionintervalclock;DSP;FPGA

2015-08-20.

中央高校基本科研費(fèi)專項(xiàng)基金(HEUCF140803).

鄭輝(1989-),女,碩士,研究方向:寬帶信號(hào)的檢測與識(shí)別.

TN972

A

1672-0946(2016)04-0458-04

猜你喜歡
譯碼寄存器時(shí)序
清明
STM32和51單片機(jī)寄存器映射原理異同分析
分段CRC 輔助極化碼SCL 比特翻轉(zhuǎn)譯碼算法
基于校正搜索寬度的極化碼譯碼算法研究
Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
基于不同建設(shè)時(shí)序的地鐵互聯(lián)互通方案分析
移位寄存器及算術(shù)運(yùn)算應(yīng)用
基于FPGA 的時(shí)序信號(hào)光纖傳輸系統(tǒng)
從霍爾的編碼譯碼理論看彈幕的譯碼
基于模體演化的時(shí)序鏈路預(yù)測方法