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

        ?

        基于FPGA的AT24C08驅動設計

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

        郭 震,馮夢丹

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

        基于FPGA的AT24C08驅動設計

        郭 震,馮夢丹

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

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

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

        1 引言

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

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

        2 FPG A選型

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

        3 AT24C 08簡介

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

        4 I I C總線

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

        IIC總線在傳輸過程中有三種信號,分別是:開始信號,結束信號和應答信號。

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

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

        應答信號:接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。處理器向受控單元發(fā)出一個信號后,等待受控單元發(fā)出一個應答信號,處理器接收到應答信號后,根據(jù)實際情況作出是否繼續(xù)傳遞信號的判斷。若未收到應答信號,判斷為受控單元出現(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ā)送起始命令和從器件設備地址給從器件,從器件產生應答信號后,主器件發(fā)送AT24C08的字地址,主器件收到從器件的另一個應答信號后,再發(fā)送數(shù)據(jù)到被尋址的存儲單元。AT24C08再次應答,并在主器件產生停止信號后開始內部數(shù)據(jù)的擦寫,在內部擦寫過程中,AT24C08不再應答主器件的任何請求。

        圖2 硬件連接圖

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

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

        6.2 讀操作

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

        圖4 隨機讀取時序圖

        7 I I C讀寫AT24C 08的VH D L程序設計

        7.1 頂層模塊介紹

        整個驅動程序包括兩個模塊:讀模塊和寫模塊[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)機設計

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

        當執(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)變化。當處于device_address狀態(tài)時,如果device_address_over=‘1’則進入等待應答位狀態(tài)wait_1,若不成立,則不進入wait_1狀態(tài),當處于wait_1狀態(tài)時,若wait_1_over=‘1’則跳轉至發(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)機設計

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

        當執(zhí)行隨機讀取操作時,首先進入初始狀態(tài)Free,若en_r=‘1’并且count3=1000,則進入start1狀態(tài),若條件不成立則不發(fā)生狀態(tài)變化。當處于start1狀態(tài)時,如果start1_over=‘1’則進入Device_address1狀態(tài),若不成立則不發(fā)生狀態(tài)變化,同理其他狀態(tài)也一樣,最終狀態(tài)回到初始狀態(tài)Free,等待下一次讀取。這里需要指出的是,當執(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”,收到應答后,接著發(fā)送字地址“00001100”,收到應答后發(fā)送要寫入的8位數(shù)據(jù),這里是“00101010”,收到應答位后表示寫入成功,進入停止狀態(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”,收到應答位后,發(fā)送讀字地址“00001100”,收到應答位后,進入第二次開始狀態(tài),接著發(fā)送第二次器件地址“10100001”,收到應答位后,進入讀數(shù)據(jù)狀態(tài),讀出數(shù)據(jù)為“00101010”,然后一個高電平的無效應答,最后進入停止狀態(tài),等待下次讀取。

        9 結束語

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

        [1]孫凱,程世恒.著Nios II系統(tǒng)開發(fā)設計與應用實例[M].北京:北京航空航天大學出版社,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的應用設計與編程[J].微型機與應用,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].重慶:重慶大學通信工程學院,2006. Li Yu.NIOSbased I2Cbus interface chip AT24C16 read and write toachieve[D].Chongqing:ChongqingUniversitySchool ofcommunication engineering,2006.

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

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

        [7]王敏志.深入了解Alter FPGA應用設計[M].北京:北京航天航空大學出版社,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)的設計與實現(xiàn)。

        2016-08-01

        猜你喜歡
        高電平字節(jié)總線
        一種基于FPGA的PWM防錯輸出控制電路
        No.8 字節(jié)跳動將推出獨立出口電商APP
        TS-03C全固態(tài)PDM中波發(fā)射機開關機控制電路原理及故障分析
        科技傳播(2019年15期)2019-08-22 08:07:44
        No.10 “字節(jié)跳動手機”要來了?
        基于PCI Express總線的xHC與FPGA的直接通信
        測控技術(2018年6期)2018-11-25 09:50:12
        機載飛控1553B總線轉以太網(wǎng)總線設計
        測控技術(2018年8期)2018-11-25 07:42:08
        簡談MC7字節(jié)碼
        DM 50KW中波廣播發(fā)射機欠推動故障分析
        PDM 1kW中波廣播發(fā)射機保護電路分析
        多通道ARINC429總線檢查儀
        亚洲 国产 韩国 欧美 在线| 国产无套粉嫩白浆在线观看| 乱人伦人妻中文字幕无码| 欧美激情区| 精品少妇后入一区二区三区| 给我看免费播放的视频在线观看| 亚洲视频在线观看| 亚洲国产一区二区三区亚瑟| 国产裸体AV久无码无遮挡| 亚洲一区二区三区视频免费看 | 亚洲免费观看在线视频| 无码专区无码专区视频网址| 全部亚洲国产一区二区| 久久精品国产清自在天天线| 成人免费毛片内射美女-百度| 亚洲色拍拍噜噜噜最新网站| 91精品人妻一区二区三区水蜜桃| 久久亚洲av成人无码电影a片| 嫩草影院未满十八岁禁止入内| 麻豆人妻无码性色AV专区| 国产自拍91精品视频| 熟女少妇精品一区二区| 99精品视频免费热播| 亚洲精彩视频一区二区| 人妻少妇中文字幕久久| 亚洲日韩国产精品乱-久| 一本久到久久亚洲综合| 国产免费一区二区三区在线视频 | 极品美女扒开粉嫩小泬图片| 女同性黄网aaaaa片| 久久亚洲AV无码一区二区综合 | 一本色道久久99一综合| 成年女人在线观看毛片| 精品熟女av中文字幕| 欧美日韩一区二区三区在线观看视频 | 字幕网中文字幕精品一区| 初尝人妻少妇中文字幕| 亚洲影院天堂中文av色| 青青草国内视频在线观看| 亚洲桃色视频在线观看一区| 少妇高潮尖叫黑人激情在线|