




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、【W(wǎng)ord版本下載可任意編輯】 FPGA設(shè)計(jì)的SPI自動(dòng)發(fā)送模塊技術(shù) 一、 SPI 接口應(yīng)用十分廣泛,在很多情況下,人們會(huì)用軟件模擬的方法來產(chǎn)生SPI 時(shí)序或是采用帶SPI 功能模塊的MCU。但隨著可編程邏輯技術(shù)的發(fā)展,人們往往需要自己設(shè)計(jì)簡單的SPI 發(fā)送模塊。本文介紹一種基于FPGA 的將并行數(shù)據(jù)以SPI 串行方式自動(dòng)發(fā)送出去的方法。 二、關(guān)鍵字: VHDL、FPGA、SPI、串行數(shù)據(jù)輸出選擇模塊、移位脈沖產(chǎn)生模塊、SPI 時(shí)鐘采集信號和無相移的SPI 基準(zhǔn)時(shí)鐘產(chǎn)生模塊、SPI 時(shí)鐘輸出選擇模塊、8bit SPI 時(shí)鐘采集生成模塊、16bit SPI 時(shí)鐘采集生成模塊、24bit SPI
2、時(shí)鐘采集生成模塊、8bit 數(shù)據(jù)移位模塊、16bit 數(shù)據(jù)移位模塊、24bit 數(shù)據(jù)移位模塊。 三、功能框圖: SPI_MODES 為輸入模式選擇端口: -01is 8bit 傳輸模式 -10is 16bit 傳輸模式 -11is 24bit 傳輸模式 CLKS 為整個(gè)模塊的基準(zhǔn)時(shí)鐘 DBINOUTS 為并行數(shù)據(jù)輸入端口: -8bit 模式為DBINOUTS(7 downto 0) -16bit 模式為DBINOUTS(15 downto 0) -24bit 模式為DBINOUTS(23 downto 0) SPI_WR 為啟動(dòng)SPI 傳輸?shù)男盘?整個(gè)功能模塊可工作在 8bit、16bit、2
3、4bit SPI 猝發(fā)傳輸狀態(tài)。對其開展軟件操作的步驟相當(dāng)簡單: -此模塊軟件操作流程如下 -1、SPI_MODES=xx 設(shè)定串口操作模式 -2、DBINOUTS=xxxxxxxxxxxxxxxxxxxxxxxx 輸入要發(fā)射的數(shù)據(jù) -3、SPI_WR=0 -4、SPI_WR=1 -5、SPI_WR=0 -8bit 模式延時(shí)2*8*4*CLKS -16bit 模式延時(shí)2*1*CLKS -24bit 模式延時(shí)2*24*4*CLKS -6、DBINOUTS=xxxxxxxxxxxxxxxxxxxxxxxx 輸入下一個(gè)要發(fā)射的數(shù)據(jù) 四、VHDL 描述解讀 -以下描述的是一個(gè)SPI 自動(dòng)發(fā)射模塊 -在
4、很多情況下,人們會(huì)用軟件模擬的方法來產(chǎn)生SPI 時(shí)序 -這里采用硬件的方法,即使軟件操作更為簡單,有提高了傳輸?shù)乃俣?-此模塊軟件操作流程如下 -1、SPI_MODES=xx 設(shè)定串口操作模式 -2、DBINOUTS=xxxxxxxxxxxxxxxxxxxxxxxx 輸入要發(fā)射的數(shù)據(jù) -3、SPI_WR=0 -4、SPI_WR=1 -5、SPI_WR=0 -8bit 模式延時(shí)2*8*4*CLKS -16bit 模式延時(shí)2*1*CLKS -24bit 模式延時(shí)2*24*4*CLKS -6、DBINOUTS=xxxxxxxxxxxxxxxxxxxxxxxx 輸入下一個(gè)要發(fā)射的數(shù)據(jù) library
5、ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity SPI_interface is port(CLKS :in std_logic; -基準(zhǔn)時(shí)鐘 LCD_SCLS :out std_logic;-SPI 發(fā)射時(shí)鐘,上升沿有效 LCD_SDIS :out std_logic;-SPI 數(shù)據(jù)串行輸出口 SPI_MODES :in std_logic_vector(1 downto 0); -串口操作模式選擇 -01is 8bit trans mode -10is 16bit trans mode -
6、11is 24bit trans mode SPI_WR :in std_logic; -啟動(dòng)串口發(fā)送信號 DBINOUTS :in std_logic_vector(23 downto 0); -背發(fā)送數(shù)據(jù)的并行輸入口 -8bit mode use DBINOUTS(7 downto 0) -16bit mode use DBINOUTS(15 downto 0) -24bit mode use DBINOUTS(23 downto 0) end; architecture SPI_interface_behav of SPI_interface is signal DB8BIT_reg :
7、std_logic_vector(7 downto 0); -8bit 數(shù)據(jù)移位存放器 signal DB16BIT_reg :std_logic_vector(15 downto 0);-16bit 數(shù)據(jù)移位存放器 signal DB24BIT_reg :std_logic_vector(23 downto 0);-24bit 數(shù)據(jù)移位存放器 signal counter4 :std_logic_vector(3 downto 0); -移位脈沖產(chǎn)生計(jì)數(shù)器 signal counter4s :std_logic_vector(1 downto 0); -SPI 時(shí)鐘生成計(jì)數(shù)器 signal
8、counter8 :std_logic_vector(4 downto 0); -8bit SPI 時(shí)鐘控制計(jì)數(shù)器 signal counter16 :std_logic_vector(5 downto 0); -16bit SPI 時(shí)鐘控制計(jì)數(shù)器 signal counter24 :std_logic_vector(5 downto 0); -24bit SPI 時(shí)鐘控制計(jì)數(shù)器 signal shift :std_logic;-移位時(shí)鐘脈沖 signal LCD_SCLSS :std_logic;-SPI 時(shí)鐘采集信號 signal LCD_SCLSSS :std_logic;-無相移的SP
9、I 基準(zhǔn)時(shí)鐘 signal LCD_SCLSS8 :std_logic;-8bit SPI 時(shí)鐘信號 signal LCD_SCLSS16 :std_logic;-16bit SPI 時(shí)鐘信號 signal LCD_SCLSS24 :std_logic;-24bit SPI 時(shí)鐘信號 signal LCD_SDIS_8BIT :std_logic;-8bit SPI 數(shù)據(jù)信號 signal LCD_SDIS_16BIT :std_logic;-16bit SPI 數(shù)據(jù)信號 signal LCD_SDIS_24BIT :std_logic;-24bit SPI 數(shù)據(jù)信號 begin -串行數(shù)據(jù)輸
10、出選擇模塊 u1:process(LCD_SDIS_8BIT,LCD_SDIS_16BIT,LCD_SDIS_24BIT,SPI_MODES) begin if SPI_MODES=01 then -選擇8bit 串行數(shù)據(jù)輸出 LCD_SDIS0 then counter80 then counter160 then counter24=counter24-1; if (counter24=000000)or(counter24=000001)or (counter24=110011)or(counter24=000010)then LCD_SCLSS24=0; else LCD_SCLSS2
11、4=LCD_SCLSSS; end if; end if; end if; end process; -8bit 數(shù)據(jù)移位模塊 DB8BIT_U:process(shift,SPI_WR,DBINOUTS) begin if SPI_WR=1 then DB8BIT_reg=DBINOUTS(7 downto 0); else if shift=1 and shiftevent then LCD_SDIS_8BIT=DB8BIT_reg(0); DB8BIT_reg(6 downto 0)=DB8BIT_reg(7 downto 1); end if; end if; end process;
12、 -16bit 數(shù)據(jù)移位模塊 DB16BIT_U:process(shift,SPI_WR,DBINOUTS) begin if SPI_WR=1 then DB16BIT_reg(15 downto 0)=DBINOUTS(15 downto 0); else if shift=1 and shiftevent then LCD_SDIS_16BIT=DB16BIT_reg(0); DB16BIT_reg(14 downto 0)=DB16BIT_reg(15 downto 1); end if; end if; end process; -24bit 數(shù)據(jù)移位模塊 DB24BIT_U:process(shift,SPI_WR,DBINOUTS) begin if SPI_WR=1 then DB24BIT_reg(23 downto 0)=DBINOUTS(23 downto 0); else if shift=1 and shiftevent then LCD_SDIS_24BIT=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030中國納米級碳酸鈣行業(yè)市場發(fā)展分析及發(fā)展趨勢預(yù)測與戰(zhàn)略投資研究報(bào)告
- 2025-2030中國纖維蛋白原缺乏藥行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 2025-2030中國紅外光譜儀行業(yè)發(fā)展分析及投資前景預(yù)測研究報(bào)告
- 2025-2030中國緊急切斷閥行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報(bào)告
- 2025-2030中國糖質(zhì)酸行業(yè)產(chǎn)能預(yù)測與發(fā)展?jié)摿ρ芯繄?bào)告
- 早教中心教師工作流程探討
- 清遠(yuǎn)拆除廠房施工方案
- 蘇州電梯井防水施工方案
- 磚墻砌體切割施工方案
- 脫硫塔整體施工方案范本
- 2024年中學(xué)英語教師招聘考試試題及答案真題
- 計(jì)算機(jī)等級考試二級MS Office高級應(yīng)用與設(shè)計(jì)試題與參考答案(2025年)
- 玉米深加工完整版本
- 2025年高考數(shù)學(xué)熱點(diǎn)題型突破:平面向量 重難點(diǎn)題型(含答案)
- 《法制宣傳之盜竊罪》課件
- 2024年嵌入式軟件許可協(xié)議3篇
- 中國的傳統(tǒng)農(nóng)耕文化科普
- 門診護(hù)理一病一品匯報(bào)
- 全文圖解九項(xiàng)準(zhǔn)則《醫(yī)療機(jī)構(gòu)工作人員廉潔從業(yè)九項(xiàng)準(zhǔn)則》
- 2024年醫(yī)療器械經(jīng)營質(zhì)量管理規(guī)范培訓(xùn)課件
- 部編版歷史九年級上冊第七單元 第20課《第一次 工業(yè)革命》說課稿
評論
0/150
提交評論