精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>接口技術(shù)>實例解析FPGA和單片機的串行通信接口設(shè)計

實例解析FPGA和單片機的串行通信接口設(shè)計

2017-11-01 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

 現(xiàn)場可編程邏輯器件(FPGA)在高速采集系統(tǒng)中的應(yīng)用越來越廣,由于FPGA對采集到的數(shù)據(jù)的處理能力比較差,故需要將其采集到的數(shù)據(jù)送到其他CPU系統(tǒng)來實現(xiàn)數(shù)據(jù)的處理功能,這就使FPGA系統(tǒng)與其他CPU系統(tǒng)之間的數(shù)據(jù)通信提到日程上,得到人們的急切關(guān)注。本文介紹利用VHDL語言實現(xiàn) FPGA與單片機的串口異步通信電路。
  整個設(shè)計采用模塊化的設(shè)計思想,可分為四個模塊:FPGA數(shù)據(jù)發(fā)送模塊,F(xiàn)PGA波特率發(fā)生控制模塊,F(xiàn)PGA總體接口模塊以及單片機數(shù)據(jù)接收模塊。本文著重對FPGA數(shù)據(jù)發(fā)送模塊實現(xiàn)進行說明。
  2 FPGA數(shù)據(jù)發(fā)送模塊的設(shè)計
  根據(jù)RS232 異步串行通信來的幀格式,在FPGA發(fā)送模塊中采用的每一幀格式為:1位開始位+8位數(shù)據(jù)位+1位奇校驗位+1位停止位,波特率為2400。本系統(tǒng)設(shè)計的是將一個16位的數(shù)據(jù)封裝成高位幀和低位幀兩個幀進行發(fā)送,先發(fā)送低位幀,再發(fā)送高位幀,在傳輸數(shù)據(jù)時,加上文件頭和數(shù)據(jù)長度,文件頭用555555來表示,只有單片機收到555555時,才將下面?zhèn)鬏數(shù)臄?shù)據(jù)長度和數(shù)據(jù)位進行接收,并進行奇校驗位的檢驗,正確就對收到的數(shù)據(jù)進行存儲處理功能,數(shù)據(jù)長度可以根據(jù)需要任意改變。由設(shè)置的波特率可以算出分頻系數(shù),具體算法為分頻系數(shù)X=CLK/(BOUND*2)。可由此式算出所需的任意波特率。下面是實現(xiàn)上述功能的VHDL源程序。
  Library ieee;
  use ieee.std_logic_1164.all;
  use ieee.std_logic_arith.all;
  use ieee.std_logic_unsigned.all;
  entity atel2_bin is
  port( txclk: in std_logic; --2400Hz的波特率時鐘
  reset: in std_logic; --復(fù)位信號
  din: in std_logic_vector(15 downto 0); --發(fā)送的數(shù)據(jù)
  start: in std_logic; --允許傳輸信號
  sout: out std_logic --串行輸出端口
  );
  end atel2_bin;
  architecture behav of atel2_bin is
  signal thr,len: std_logic_vector(15 downto 0);
  signal txcnt_r: std_logic_vector(2 downto 0);
  signal sout1: std_logic;
  signal cou: integer:=0;
  signal oddb:std_logic;
  type s is(start1,start2,shift1,shift2,odd1,odd2,stop1,stop2);
  signal state:s:=start1;
  begin
  process(txclk)
  begin
  if rising_edge(txclk) then
  if cou《3 then thr《=“0000000001010101”; --發(fā)送的文件頭
  elsif cou=3 then
  thr《=“0000000000000010”; --發(fā)送的文件長度
  elsif (cou》3 and state=stop2) then thr《=din;--發(fā)送的數(shù)據(jù)
  end if;
  end if;
  end process;
  process(reset,txclk)
  variable tsr,tsr1,oddb1,oddb2: std_logic_vector(7 downto 0);
  begin
  if reset=‘1’ then
  txcnt_r《=(others=》‘0’);
  sout1《=‘1’;
  state《=start1;
  cou《=0;
  elsif txclk’event and txclk=‘1’ then
  case state is
  when start1=》
  if start=‘1’ then
  if cou=3 then
  len《=thr;
  end if;
  tsr:=thr(7 downto 0);
  oddb1:=thr(7 downto 0);
  sout1《=‘0’; --起始位
  txcnt_r《=(others=》‘0’);
  state《=shift1;
  else
  state《=start1;
  end if;
  when shift1=》
  oddb《=oddb1(7) xor oddb1(6) xor oddb1(5) xor oddb1(4) xor oddb1(3) xor oddb1(2) xor oddb1(1) xor oddb1(0);
  sout1《=tsr(0); --數(shù)據(jù)位
  tsr(6 downto 0):=tsr(7 downto 1);
  tsr(7):=‘0’;
  txcnt_r《=txcnt_r+1;
  if (txcnt_r=7) then
  state《=odd1;cou《=cou+1;
  end if;
  when odd1=》 --奇校驗位
  if oddb=‘1’ then
  sout1《=‘0’;state《=stop1;
  else
  sout1《=‘1’;state《=stop1;
  end if;
  when stop1=》
  sout1《=‘1’; --停止位
  if cou《4 then
  state《=start1;
  else
  state《=start2;
  end if;
  when start2=》
  tsr1:=thr(15 downto 8);
  oddb2:=thr(15 downto 8);
  sout1《=‘0’; --起始位
  txcnt_r《=(others=》‘0’);
  state《=shift2;
  when shift2=》
  oddb《=oddb2(7) xor oddb2(6) xor oddb2(5) xor oddb2(4) xor oddb2(3) xor oddb2(2) xor oddb2(1) xor oddb2(0);
  sout1《=tsr1(0);--數(shù)據(jù)位
  tsr1(6 downto 0):=tsr1(7 downto 1);
  tsr1(7):=‘0’;
  txcnt_r《=txcnt_r+1;
  if (txcnt_r=7) then
  state《=odd2;
  end if;
  when odd2=》 --奇校驗位
  if oddb=‘1’ then
  sout1《=‘0’;state《=stop2;
  else
  sout1《=‘1’;state《=stop2;
  end if;
  when stop2=》
  sout1《=‘1’; --停止位
  if len=“0000000000000000” then
  state《=stop2;
  else
  state《=start1;
  len《=len-1;
  end if;
  end case;
  end if;
  end process;
  sout《=sout1;
  end behav; 其中各信號的說明已在程序中標明了。波形仿真圖如圖1所示。
  實例解析FPGA和單片機的串行通信接口設(shè)計
  圖1 FPGA數(shù)據(jù)發(fā)送時序仿真圖
  圖中Din寫入值為3355H,波特率為2400Hz,Start信號始終置邏輯1,即隨時都能發(fā)送數(shù)據(jù)。Reset信號邏輯1時復(fù)位,邏輯0時電路開始工作。THR是數(shù)據(jù)寄存器,文件頭、數(shù)據(jù)長度以及數(shù)據(jù)位都先寄存到THR中,Len是數(shù)據(jù)長度,TSR是低8位數(shù)據(jù)幀寄存器,TSR1是高8位數(shù)據(jù)幀寄存器。數(shù)據(jù)長度Len定為02H,發(fā)送時先發(fā)送低8位55H,后發(fā)送高8位33H,一共發(fā)送兩遍。發(fā)送的數(shù)據(jù)格式說明:當發(fā)送55H時,其二進制為01010101,則發(fā)送的數(shù)據(jù)的二進制數(shù)為00101010111(1位開始位+8位數(shù)據(jù)位+1位奇校驗位+1位停止位)。
  單片機部分先對FPGA發(fā)送過來的文件頭進行確認,正確就接收文件,否則放棄接收的數(shù)據(jù)。根據(jù)FPGA發(fā)送模塊的協(xié)議,對串口控制寄存器SCON和波特率控制寄存器PCON的設(shè)置即可實現(xiàn)。
  3 總結(jié)
  目前電子產(chǎn)品的開發(fā)中經(jīng)常要綜合運用EDA技術(shù)、計算機控制技術(shù)、數(shù)字信號處理技術(shù),那么電路各部分經(jīng)常需要數(shù)據(jù)交換。本文也是基于此給出這方面應(yīng)用的實例,供開發(fā)者交流。
?
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1電子電路原理第七版PDF電子教材免費下載
  2. 0.00 MB  |  1497次下載  |  免費
  3. 2TC358743XBG評估板參考手冊
  4. 1.36 MB  |  330次下載  |  免費
  5. 3單片機典型實例介紹
  6. 18.19 MB  |  99次下載  |  1 積分
  7. 4S7-200PLC編程實例詳細資料
  8. 1.17 MB  |  28次下載  |  1 積分
  9. 5筆記本電腦主板的元件識別和講解說明
  10. 4.28 MB  |  18次下載  |  4 積分
  11. 6開關(guān)電源原理及各功能電路詳解
  12. 0.38 MB  |  14次下載  |  免費
  13. 79天練會電子電路識圖
  14. 5.91 MB  |  6次下載  |  免費
  15. 8100W短波放大電路圖
  16. 0.05 MB  |  4次下載  |  3 積分

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234313次下載  |  免費
  3. 2PADS 9.0 2009最新版 -下載
  4. 0.00 MB  |  66304次下載  |  免費
  5. 3protel99下載protel99軟件下載(中文版)
  6. 0.00 MB  |  51209次下載  |  免費
  7. 4LabView 8.0 專業(yè)版下載 (3CD完整版)
  8. 0.00 MB  |  51043次下載  |  免費
  9. 5555集成電路應(yīng)用800例(新編版)
  10. 0.00 MB  |  33564次下載  |  免費
  11. 6接口電路圖大全
  12. 未知  |  30321次下載  |  免費
  13. 7Multisim 10下載Multisim 10 中文版
  14. 0.00 MB  |  28588次下載  |  免費
  15. 8開關(guān)電源設(shè)計實例指南
  16. 未知  |  21540次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537794次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234313次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191183次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138039次下載  |  免費