freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

信息與通信]帶有源代碼基于fpga的模擬i2c接口設計與實現(xiàn)-預覽頁

2024-12-14 15:53 上一頁面

下一頁面
 

【正文】 。 應答信號: 接收數(shù)據(jù)的 IC 在接收到 8bit 數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的 IC 發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。帶有 IIC 接口的單片機有: CYGNAL 的 C8051F0XX 系列, PHILIPSP87LPC7XX 系列, MICROCHIP的 PIC16C6XX 系列等。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。 圖 2 串行總線上的數(shù)據(jù)傳送順序 1. 3 控制字節(jié) 在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識別符(不同的芯片類型有不同的定義, EEPROM 一般應為 1010),接著三位為片選,最后一位為讀寫位,當為 1 時為讀操作,為 0 時為寫操作。 圖 4 頁面寫 1. 5 讀操作 讀 操作有三種基本操作:當前地址讀、隨機讀和順序讀。 圖 5 順序讀 IIC 總線系統(tǒng)由兩根總線即 SCL(串行時鐘 )線和 SDA(串行數(shù)據(jù) )線構成。在整個主從傳送過程中,所有的事件都通過主控器件的 SCL 時鐘線達到同步。 1. 6 7 位的地址格式 介紹 數(shù)據(jù)的傳輸遵循圖 7 所示的格式 在起始條件 S 后 , 發(fā)送了一個從機地址 ,這個地 址共有 7 位 , 緊接著的第 8 位是數(shù)據(jù)方向位 R/ W, 0 表示發(fā)送寫 , 1 表示請求數(shù)據(jù)讀 。 而不是首先產(chǎn)生一個停止條件 , 在這種傳輸中可能有不同的讀寫格式結合 。若未收到應答信號,由判斷為受控單元出現(xiàn)故障。 P IN _ 1 5 4V C Cc lk IN P U TP IN _ 1 1 8P IN _ 1 1 9P IN _ 1 1 7P IN _ 1 1 6V C Ck e y [ 3 . . 0 ] IN P U TVCCk e y _ w i d 4 S i g n e d In t e g e rn2 500000 S i g n e d In t e g e rP a r a m e t e r V a lu e T y p ec lkrs t _ nk e y _ in [ k e y _ w id 1 . . 0 ]k e y _ o u t [ k e y _ w id 1 . . 0 ]S y n _ S ig nK e y F ilt e r_ C h e c kin s t 7k e y v a lu e [ 3 . . 0 ] 圖 9 按鍵消抖模塊 2. 1. 2 分頻模塊 設計 (Division_1_500HZ) 在總體硬件設計中,分頻模塊建立的 Verilog HDL 文件名為Division_1_500HZ,其實現(xiàn)的功能是將輸入的初始時鐘 clk 進行分頻, 通過分頻獲取串行總線器件 所需要 的時鐘信號 ( 即 達到 輸出 1HZ, 50HZ, 500HZ 頻率 的目的) 。 AT24C08 的數(shù)據(jù)端口sda; 后面顯示接收到數(shù)據(jù)的標志 ackflagIIC; 數(shù)碼管 所 顯示的數(shù)據(jù) 輸出 端 口outdata。圖 12 為 IIC 總線接口框圖 , 主要包括以下幾個單元。 移位寄存器 : 在時序控制邏輯模塊的控制下根據(jù)讀寫使能信號 (r/w)對數(shù)據(jù)進行正確地處理。主狀態(tài)機 從的大的方面 共有 5個狀態(tài) :空閑 (Idle) , 開始 (Start) , 發(fā)送數(shù)據(jù) (Tx), 接收數(shù)據(jù) (Rx), 停止 (Stop)。// IIC 總 線處在空閑狀態(tài) START1: 1739。//寫入器件地址 ACK1: 1739。//寫入字節(jié)地址 ACK2: 1739。//讀操作開始前的起始信號 ADD3: 1739。//應答 狀態(tài) ACKR: 1739。//字節(jié)讀寫 狀態(tài) PAGER: 1739。//頁寫 狀態(tài) ACK4: 1739。//高電平 狀態(tài) STOP1: 1739。b0_1000_0000_0000_0000。在 開始條件模塊中,因為需要發(fā)送從器件地址,所以要調(diào)用字節(jié)發(fā)送模塊 。 然 后將生成的 .sof文件下載到 EP2C20Q240C8 目標板上進行實物測試,得到如下的測試圖。從圖 17和圖 18 明顯可知 ,當 master 的 drive 線置高電平且 r/w 線為低電平時 , IIC 模塊運作 ,產(chǎn)生起始信號 Start ,且在 sda 線發(fā)送 8 位數(shù)據(jù) ,且在 scl 線發(fā)送 9 個時 鐘脈沖信號 ,等待 相應信號 mcf ,若 slave 響應 ,則 mcf 為高電平 ,繼續(xù)發(fā)送下一字節(jié)數(shù)據(jù) ,直到產(chǎn)生終止信號 Stop ,sda 線和 scl 線置高電平 ,發(fā)送數(shù)據(jù)終止 ,等待下一個起始信號 Start。 圖 17 master 時序仿真圖 圖 18 slave 時序仿真圖 17 參考文獻 [1] 夏宇聞 . Verilog 數(shù)字系統(tǒng)設計教程 [ M ] . 北京航空航天大學出版社 , 2020. [2] 何立民 . IIC 總線應用系統(tǒng)設計 [ M ] . 北京航空航天大學出版社 , 2020. [3] 吳繼華 , 王誠 . Altera FP GA/ CPLD 設計 (高級篇 ) [ M ] . 人民郵電出版社 ,2020. [4] 路永坤.用 Verilog HDL 實現(xiàn) IIC 總線功能[ J].:電子技術應用 , 2020. [5] IIC 總線規(guī)范[ E].:電子技術論壇, 2020. 18 附錄 部分源代碼 /************************************************************************************/ //IIC 接口時序模擬部分 module IIC_Interface_Bus( clk, rst_n, Syn_Sign, Byte_Write, Byte_Read, Page_Write, Page_Read, scl, sda, ackflag, outdata )。d78//839。d26//839。d43//839。 //復位信號,低電平有效 input Syn_Sign。 //AT24C08 的數(shù)據(jù)端口 20 output [2:0]ackflag。 //500 循環(huán)計數(shù),產(chǎn)生 iic 所需要的時鐘 100khz Max:400KHZ reg scl_r。 else if(t_delay == 939。b1。d499) scl_r = 139。b0。 else begin case (t_delay) 939。d255: t = 339。d3。 //t=0:scl 上升沿前面點 default: t = 339。d1) //t=1:scl 高電平中間 , 用于數(shù)據(jù)采樣 `define SCL_NEG (t==339。 //讀出 EEPROM 的數(shù)據(jù)寄存器 reg[7:0] outdata_r。b0_0000_0000_0000_0001。b0_0000_0000_0000_0100。b0_0000_0000_0001_0000。b0_0000_0000_0100_0000。b0_0000_0001_0000_0000。b0_0000_0010_0000_0000。b0_0000_1000_0000_0000。b0_0010_0000_0000_0000。b0_1000_0000_0000_0000。 //輸出數(shù)據(jù) sda 信號 inout 方向控制位 reg [3:0] num。//連讀儲存器 /************************************************************************************/ always (posedge clk or negedge rst_n) begin if(!rst_n) begin 24 pagedata_r = 839。 339。 339。 // sda_r = 139。 //0:數(shù)據(jù)線 sda 為 input, 1:數(shù)據(jù)線 sda 為 output num = 439。 // paget = 339。// outdata_r = 839。//數(shù)據(jù)線 sda 為 input sda_r = 139。 //ackflag = 339。 // end else cstate = IDLE。b0。 num = 439。d8) begin num = 439。//shi fang shiju xian sda_link= 139。 num = num+139。//gao dao di 439。 439。 439。 439。 end 28 ACK1://應答信號都是由接收方發(fā)送的,第九個時鐘脈沖拉低數(shù)據(jù)線 . 發(fā)送方需檢測數(shù)據(jù)線電平以獲取應答信號 . begin//注: 24C01/02/04/08/16 器件可以不考慮應答位 if(/*!sda*/`SCL_NEG) if(`SCL_NEG) begin cstate = ADD2。d8) begin num = 439。 sda_link= 139。b1。d0: sda_r = db_r[7]。d2: sda_r = db_r[5]。d4: sda_r = db_r[3]。d6: sda_r = db_r[1]。 endcase cstate = ADD2。//寫入的數(shù)據(jù) 1 end else if( (!Byte_Read) || (!Page_Read))//字節(jié)讀或者頁讀按鍵 begin//讀或著是連讀 db_r = `DEVICE_READ。d1。b1。 end else if(`SCL_HIG) begin //scl 為高電平中間 sda_r = 139。 end ADD3: begin //送讀操作地址 if(`SCL_LOW) begin if(num==439。b1。 end else begin num = num+139。 439。 439。 439。 439。 end end else 33 cstate = ADD3。 //從機響應信號 sda_link = 139。 !Page_Read) begin cstate = PAGER。b0。amp。 sda_link = 139。d7) begin cstate = DATA。d0: read_data[7] = sda。d2: read_data[5] = sda。d4: read_data[3] = sda。d6: read_data[1] = sda。 endcase end end else if((`SCL_LOW) amp。d0。 //無應答 outdata_r = read_data。 end else cstate = DATA。d7) begin cstate = DATA。b1。d1: sda_r = db_r[6]。d3: sda_r = db_r[4]。d5: sda_r = db_r[2]。d7: sda_r = db_r[0]。 (num==439。b1。 end else cstate = DATA。d7) begin cstate = PAGEW。b1。d1: sda_r = pagedata_r[6]。d3: sda_r = pagedata_r[4]。d5: sda_r = pagedata_r[2]。d7: sda_r = pagedata_r[0]。 (num==439。b1)) begin num = 439。 sda_r = 139。//sda 置為高阻態(tài) cstate = ACK2。d8) amp。d0。d0。b0。d7) begin cstate = PAGER。d0: read_data[7] = sda。d2: read_data[5] = sda。d4: read_data[3] = sda。d6: read_data[1] = sda。 endcase end end else if((`SCL_LOW) amp。amp。 paget = paget +139。d1。b1。 (num==439。b1)) 41 begin num = 439。 outdata_r = read_data。d0。b1。 end else cstate = ACK4。d1。b1。 end else if(`SCL_HIG) begin 43 sda_r = 139。 end STOP2: begin if(`SCL_LOW) sda_r = 139。 end default: cstate = IDLE。 /************************************************************************************/ endmodule
點擊復制文檔內(nèi)容
法律信息相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1