亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的AT24C08驅(qū)動設(shè)計

        2017-07-31 19:22:39馮夢丹
        微處理機 2017年2期
        關(guān)鍵詞:高電平字節(jié)總線

        郭 震,馮夢丹

        (西安工程大學(xué)電子信息學(xué)院,西安710048)

        基于FPGA的AT24C08驅(qū)動設(shè)計

        郭 震,馮夢丹

        (西安工程大學(xué)電子信息學(xué)院,西安710048)

        VHDL語言作為一種數(shù)字電路設(shè)計語言,在集成電路前端設(shè)計和用FPGA器件實現(xiàn)數(shù)字電子系統(tǒng)設(shè)計的過程設(shè)計中發(fā)揮著十分重要的作用。通過實現(xiàn)對AT24C08的讀寫,掌握VHDL這一硬件描述語言以及FPGA程序的設(shè)計思路,熟練掌握狀態(tài)機的應(yīng)用。首先簡單介紹了IIC硬件電路設(shè)計,IIC通訊接口的標(biāo)準(zhǔn)協(xié)議以及ATMEL公司串行EEPROM AT24C08的工作原理,重點闡述了IIC總線驅(qū)動AT24C08的程序設(shè)計思路。整個程序設(shè)計采用VHDL語言,在QUARTUS II開發(fā)環(huán)境下進行各個模塊的程序編寫,并且通過原理圖輸入方式完成頂層模塊的原理圖設(shè)計,然后通過Modelsim仿真軟件進行整個程序仿真,最終通過示波器觀測實驗波形,來驗證程序的正確性。實驗結(jié)果與仿真結(jié)果一致,實現(xiàn)了AT24C08數(shù)據(jù)的寫入和讀取。

        FPGA集成芯片;驅(qū)動;串行;硬件描述語言;狀態(tài)機;IIC總線;AT24C08存儲器

        1 引言

        在嵌入式系統(tǒng)開發(fā)過程中,IIC占據(jù)非常重要的地位。IIC通訊接口能到搭載較多的從設(shè)備,從而實現(xiàn)與多個從設(shè)備進行通訊,在板級通訊中是一種比較常用的通訊接口。對于其他MCU,例如:DSP, ARM,或者單片機內(nèi)部都集成了IIC接口,然而對于FPGA來說,內(nèi)部是許多邏輯單元,并沒有集成IIC接口。因此,針對FPGA這種應(yīng)用較為靈活的MCU來說,如何進行IIC通訊便成為一個現(xiàn)實問題。針對這一問題,進行了詳細說明,并通過利用IIC通訊接口,實現(xiàn)對AT24C08串口EEPROM的讀寫,驗證了基于VHDL語言的IIC通訊接口設(shè)計的正確性。

        在微處理器選擇上,采用ALTERA公司CyloneIV的EP4CE6E22C8N處理器,內(nèi)部邏輯單元6272個,內(nèi)嵌存儲容量270Kbits,最大用戶I/O口179個。EEPROM采用ATMEL公司的AT24C08,內(nèi)存為8Kbits,支持標(biāo)準(zhǔn)IIC通訊協(xié)議。通過IIC接口實現(xiàn)FPGA對AT24C08的讀寫。以此為例,詳細說明IIC的設(shè)計原理,并通過示波器觀察實驗波形,從而驗證程序的正確性。

        2 FPG A選型

        以ALTERA公司CyloneIV的EP4CE-6E22C8N處理器為例,利用VHDL硬件描述語言,在Quartus II開發(fā)環(huán)境下,實現(xiàn)程序設(shè)計并通過ModelSim進行程序仿真。EP4CE6E22C8N是一款低功耗處理器,內(nèi)部邏輯單元 6272個,內(nèi)嵌存儲容量270Kbits,18*18的硬件乘法器15個,最大用戶I/O口179個,EP4CE15E22C8N支持三種電壓,內(nèi)核電壓1.2V,鎖相環(huán)模擬電源2.5V,鎖相環(huán)數(shù)字電源1.2V,I/O口供電電源3.3V[1]。

        3 AT24C 08簡介

        AT24C08是一款內(nèi)存為8Kbits的串行EEPROM,內(nèi)部包含1024個8位字節(jié),供電電源2.7V到5.5V,支持標(biāo)準(zhǔn)IIC通訊協(xié)議。AT24C08的引腳包括:A0-A2地址輸入引腳,SDA數(shù)據(jù)輸入引腳,SCL時鐘輸入引腳,WP寫保護引腳,NC懸空引腳[2]。

        4 I I C總線

        IIC總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。它是由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。在處理器與被控IC之間,IC與IC之間進行雙向傳送,高速 IIC總線一般可達400Kbps以上。

        IIC總線在傳輸過程中有三種信號,分別是:開始信號,結(jié)束信號和應(yīng)答信號。

        開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。

        結(jié)束信號:SCL為高定平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。

        應(yīng)答信號:接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。處理器向受控單元發(fā)出一個信號后,等待受控單元發(fā)出一個應(yīng)答信號,處理器接收到應(yīng)答信號后,根據(jù)實際情況作出是否繼續(xù)傳遞信號的判斷。若未收到應(yīng)答信號,判斷為受控單元出現(xiàn)故障[3]。

        IIC總線時序圖如圖1所示。

        圖1 IIC總線時序圖

        5 AT24C 08硬件連接

        AT24C08數(shù)據(jù)手冊,由于SCL,SDA引腳均是OC輸出,所以要分別添加上拉電阻,上拉電壓到3.3V,芯片供電電壓3.3V,A2,A1,A0是AT24C08的頁地址引腳,這里A2,A1,A0接地。寫保護引腳高電平有效,這里將寫保護引腳接地,硬件連接如圖2所示。

        6 AT24C 08工作原理

        6.1 寫操作

        在字節(jié)寫模式下,主器件發(fā)送起始命令和從器件設(shè)備地址給從器件,從器件產(chǎn)生應(yīng)答信號后,主器件發(fā)送AT24C08的字地址,主器件收到從器件的另一個應(yīng)答信號后,再發(fā)送數(shù)據(jù)到被尋址的存儲單元。AT24C08再次應(yīng)答,并在主器件產(chǎn)生停止信號后開始內(nèi)部數(shù)據(jù)的擦寫,在內(nèi)部擦寫過程中,AT24C08不再應(yīng)答主器件的任何請求。

        圖2 硬件連接圖

        AT24C08字節(jié)寫時序如圖3所示。

        圖3 字節(jié)寫時序圖

        6.2 讀操作

        隨機讀取模式下,主器件發(fā)送起始命令和從器件設(shè)備地址給從器件,從器件產(chǎn)生應(yīng)答信號后,主器件發(fā)送AT24C16的字地址,主器件收到從器件的另一個應(yīng)答信號后,這個字節(jié)為無效字節(jié),然后主器件再發(fā)送起始命令和從器件設(shè)備地址給從器件,從器件產(chǎn)生應(yīng)答信號后,被尋址的存儲單元中的數(shù)據(jù)就會從SDA線發(fā)送出來,此處不需要應(yīng)答,然后發(fā)送停止命令即可完成隨機讀取操作[4]。AT24C08隨機讀取時序如圖4所示。

        圖4 隨機讀取時序圖

        7 I I C讀寫AT24C 08的VH D L程序設(shè)計

        7.1 頂層模塊介紹

        整個驅(qū)動程序包括兩個模塊:讀模塊和寫模塊[5-6]。

        讀模塊輸入包括:

        MCLK:系統(tǒng)主頻時鐘50MHz。

        En_r:模塊讀使能控制信號,高電平使能。

        Word_read_addr:8位讀地址線。

        Over_read_zd:讀完成中斷信號。

        Data_out:從AT24C08讀出的8位并行數(shù)據(jù)。

        SCL:IIC時鐘線。

        SDA:IIC數(shù)據(jù)線。

        寫模塊輸入包括:

        MCLK:系統(tǒng)主頻時鐘50MHz。

        En_W:模塊寫使能控制信號,低電平使能。Word_write_addr:8位寫地址線。

        Data_write:8位待寫入的數(shù)據(jù)。

        over_write_zd:寫完成中斷。

        SCL:IIC時鐘線。

        SDA:IIC數(shù)據(jù)線。

        頂層模塊圖如圖5所示。

        圖5 頂層模塊圖

        7.2 寫操作狀態(tài)機設(shè)計

        字節(jié)寫操作包括9個狀態(tài):初始狀態(tài)Free,開始狀態(tài)start,發(fā)送器件地址狀態(tài)device_address,等待第一次應(yīng)答位狀態(tài)wait_1,發(fā)送字地址狀態(tài)word_address,等待第二次應(yīng)答位狀態(tài)wait_2,寫數(shù)據(jù)狀態(tài)write_data,等待第三次應(yīng)答位狀態(tài)wait_3,停止?fàn)顟B(tài)stop[7]。

        當(dāng)執(zhí)行寫操作時,首先進入Free狀態(tài),在此狀態(tài)下如果寫使能信號en_w=‘0’,進入開始狀態(tài)start,如果條件不成立,不發(fā)生狀態(tài)變化。進入start狀態(tài),如果start_over=‘1’則進入發(fā)送器件地址狀態(tài)device_address,如果條件不滿足,則不發(fā)生狀態(tài)變化。當(dāng)處于device_address狀態(tài)時,如果device_address_over=‘1’則進入等待應(yīng)答位狀態(tài)wait_1,若不成立,則不進入wait_1狀態(tài),當(dāng)處于wait_1狀態(tài)時,若wait_1_over=‘1’則跳轉(zhuǎn)至發(fā)送字地址狀態(tài)word_address,同理其他狀態(tài)也一樣,最終回到初始狀態(tài)Free,也就是空閑狀態(tài),等待下一次寫入[8]。字節(jié)寫狀態(tài)變化如圖6所示。

        圖6 字節(jié)寫狀態(tài)變化圖

        7.3 讀操作狀態(tài)機設(shè)計

        隨機讀操作包括12個狀態(tài):初始狀態(tài)Free,第一次開始狀態(tài)start1,第一次發(fā)送器件地址狀態(tài)device_address1,第一次等待應(yīng)答位狀態(tài)wait_1,發(fā)送字地址狀態(tài)word_address,第二次等待應(yīng)答位狀態(tài)wait_2,第二次開始狀態(tài)start2,第2此發(fā)送器件地址狀態(tài)device_address2,第三次等待應(yīng)答位狀態(tài)wait_3,讀數(shù)據(jù)狀態(tài)data_read,no_ack狀態(tài),停止?fàn)顟B(tài)。

        當(dāng)執(zhí)行隨機讀取操作時,首先進入初始狀態(tài)Free,若en_r=‘1’并且count3=1000,則進入start1狀態(tài),若條件不成立則不發(fā)生狀態(tài)變化。當(dāng)處于start1狀態(tài)時,如果start1_over=‘1’則進入Device_address1狀態(tài),若不成立則不發(fā)生狀態(tài)變化,同理其他狀態(tài)也一樣,最終狀態(tài)回到初始狀態(tài)Free,等待下一次讀取。這里需要指出的是,當(dāng)執(zhí)行隨機讀取操作時,首先要先執(zhí)行一個無效的字節(jié)寫操作,即并不寫入數(shù)據(jù),只發(fā)送器件地址和字地址。隨機讀取狀態(tài)變化如圖7所示。

        圖7 隨機讀取狀態(tài)變化圖

        8 試驗

        8.1 寫程序試驗

        測試條件:

        Device_address(7 downto0)=“10100000”

        ***********器件地址0xA0********

        Word_write_addr(7 downto0)=“00001100”

        ***********字地址0x0C**********

        Data_write(7 downto0)=“00101010”

        ***********寫入數(shù)據(jù)0x2C*********

        試驗波形如圖8所示。

        圖8 寫試驗波形

        圖8中波形2表示時鐘線SCL,頻率為50KHz,波形1為數(shù)據(jù)線SDA,這里的器件地址,字地址,以及寫入的數(shù)據(jù)都是8位的,在發(fā)送中都是高位先發(fā)。

        首先在開始狀態(tài),發(fā)送器件地址“10100000”,收到應(yīng)答后,接著發(fā)送字地址“00001100”,收到應(yīng)答后發(fā)送要寫入的8位數(shù)據(jù),這里是“00101010”,收到應(yīng)答位后表示寫入成功,進入停止?fàn)顟B(tài),等待下次寫入。

        8.2 讀程序試驗

        測試條件:

        Device_addr1(7 downto0)=“10100000”

        *********第一次的器件地址0xC0********* Device_addr2(7 downto0)=“10100001”

        ********第二次的器件地址0xC1********* Word_read_addr(7 downto0)=“00001100”

        ******讀字地址0x0C*****************試驗波形如圖9所示:

        圖9 讀試驗波形圖

        圖9中波形2表示時鐘線SCL,頻率為50KHZ,波形1為數(shù)據(jù)線SDA,這里的器件地址,字地址都是8位的,發(fā)送中都是高位先發(fā)。

        首先進入開始狀態(tài),接著發(fā)送第一次器件地址“10100000”,收到應(yīng)答位后,發(fā)送讀字地址“00001100”,收到應(yīng)答位后,進入第二次開始狀態(tài),接著發(fā)送第二次器件地址“10100001”,收到應(yīng)答位后,進入讀數(shù)據(jù)狀態(tài),讀出數(shù)據(jù)為“00101010”,然后一個高電平的無效應(yīng)答,最后進入停止?fàn)顟B(tài),等待下次讀取。

        9 結(jié)束語

        利用VHDL語言進行程序設(shè)計,通過IIC通訊接口實現(xiàn)對AT24C08的讀寫,并且通過實驗驗證,結(jié)果完全正確。

        [1]孫凱,程世恒.著Nios II系統(tǒng)開發(fā)設(shè)計與應(yīng)用實例[M].北京:北京航空航天大學(xué)出版社,2007. Sun Kai,Cheng Heng.Nios II system design and application [M].Beijing:BeihangUniversitypress,2007.

        [2]陳博.AT24C系列貼片式EEPROM芯片 [J].電子世界,1998(10):10-12. Chen Bo.AT24C series chip EEPROM chip [J].electronic world,1998(10):10-12.

        [3]姚小兵,萬黎,林輝.串行E~2PROM的應(yīng)用設(shè)計與編程[J].微型機與應(yīng)用,2002(1):15-17. YaoXiaobing,Wan Li,Lin Hui.Application design and programming of serial[J].E~2PROMmicrocomputer and application,2002(1):15-17.

        [4]李漁.基于NIOS的I2C總線接口芯片AT24C16讀寫的實現(xiàn)[D].重慶:重慶大學(xué)通信工程學(xué)院,2006. Li Yu.NIOSbased I2Cbus interface chip AT24C16 read and write toachieve[D].Chongqing:ChongqingUniversitySchool ofcommunication engineering,2006.

        [5]stefan Sjoholm,Lennart Lindh,著.用VHDL設(shè)計電子線路[M].邊計年,薛宏熙,譯.北京:清華大學(xué)出版社,2000. stefan Sjoholm,Lennart Lindh author.Design of electronic circuit VHDL[M].bianjinian xuehongxi translate.Beijing: Tsinghua Universitypress,press,2000.

        [6]邢建平,曾繁泰,著.VHDL程序設(shè)計教程[M].北京:清華大學(xué)出版社,2005. Xing Jianping,Zeng Fantai.Has been in the process of VHDL programmingtutorial[M].Beijing:Tsinghua Universitypress, 2005.

        [7]王敏志.深入了解Alter FPGA應(yīng)用設(shè)計[M].北京:北京航天航空大學(xué)出版社,2014. Wang Minzhi.with a deep understanding of the application of FPGA [M].Beijing:Beijing Aerospace University Press, 2014.

        [8]劉福奇,編著.飛思科技研發(fā)中心監(jiān)制.FPGA嵌入式項目開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2009. Edited by Liu Fuqi.Freescale technology R&D center producer FPGA embedded project actual development[M].Beijing.Beijing:PublishingHouse ofelectronics industry,2009.

        Design of AT24C08 Driver Based on FPGA

        Guo Zhen,Feng Mengdan
        (School of Electronic Information,Xi'an Polytechnic University,Xi'an 710048,China)

        VHDL language,as a kind of digital circuit design language,in the front-end design of integrated circuit,using FPGA devices to achieve digital electronic system design process design,is playing a very important role.Through the realization of the AT24C08 read and write,the VHDL hardware description language,FPGA program design ideas and the application of state machine are mastered.First of all,the paper briefly introduces the IIC hardware circuit design,the standard protocol of IIC communication interface and the working principle of serial AT24C08 EEPROM of ATMEL company,focusing on the program design of IIC bus driver AT24C08.The whole process of the design using VHDL language,in the Quartus II development environment for each module of the program, completes the schematic design of the top-level module the schematic and the whole process simulation by Modelsim simulation software.Finally,the oscilloscope is used to observe the experiment for verifying the correctness of the program.The experimental results and simulation results are consistent,and AT24C08 data write and read is achieved.

        FPGA integrated chip;Driver;Serial;Hardware description language;State machine; IIC bus;AT24C08 memory

        10.3969/j.issn.1002-2279.2017.02.019

        TP29

        A

        1002-2279-(2017)02-0086-05

        郭震(1989-),男,陜西省西安市人,碩士研究生,主研方向:多軸聯(lián)動運動控制系統(tǒng)的設(shè)計與實現(xiàn)。

        2016-08-01

        猜你喜歡
        高電平字節(jié)總線
        一種基于FPGA的PWM防錯輸出控制電路
        No.8 字節(jié)跳動將推出獨立出口電商APP
        TS-03C全固態(tài)PDM中波發(fā)射機開關(guān)機控制電路原理及故障分析
        科技傳播(2019年15期)2019-08-22 08:07:44
        No.10 “字節(jié)跳動手機”要來了?
        基于PCI Express總線的xHC與FPGA的直接通信
        機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
        簡談MC7字節(jié)碼
        DM 50KW中波廣播發(fā)射機欠推動故障分析
        PDM 1kW中波廣播發(fā)射機保護電路分析
        多通道ARINC429總線檢查儀
        淫秽在线中国国产视频| 少妇太爽了在线观看| 亚洲日韩精品A∨片无码加勒比| 偷拍av一区二区三区| 成人国产激情自拍视频| 无码国产精品一区二区免费式直播 | 国产在线一区二区三区四区乱码| 无码日韩精品一区二区免费暖暖| 永久免费av无码入口国语片| YW亚洲AV无码乱码在线观看| 久久熟女精品—区二区蜜臀| 蜜桃18禁成人午夜免费网站| a级特黄的片子| 亚州精品无码人妻久久| 91国内偷拍一区二区三区 | 在线视频一区二区三区中文字幕| 亚洲一区二区三区2021| 窝窝午夜看片| 日韩精品久久久一区| 一区二区三区在线观看视频免费| 青青草狠吊色在线视频| 国产精品无码午夜福利| 白浆出来无码视频在线| 东京热日本道免费高清| 国产suv精品一区二区四| 天天看片视频免费观看| 人妻系列无码专区久久五月天| 亚洲男人的天堂av一区| 国产永久免费高清在线| 国产精品亚洲欧美云霸高清| av免费网站在线免费观看| 人妖av手机在线观看| 日本亚洲色大成网站www久久| 久草热这里只有精品在线| 亚洲成熟中老妇女视频| 女人色熟女乱| 99热在线精品播放| 一区二区三区视频偷拍| 野花香社区在线视频观看播放| 亚洲不卡中文字幕无码| 男女上床视频在线观看|