FPGA和單片機(jī)的串行通信接口設(shè)計(jì)
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;
其中各信號(hào)的說(shuō)明已在程序中標(biāo)明了。波形仿真圖如圖2所示。
圖2 FPGA數(shù)據(jù)發(fā)送時(shí)序仿真圖
圖中Din寫入值為3355H,波特率為2400Hz,Start信號(hào)始終置邏輯1,即隨時(shí)都能發(fā)送數(shù)據(jù)。Reset信號(hào)邏輯1時(shí)復(fù)位,邏輯0時(shí)電路開始工作。THR是數(shù)據(jù)寄存器,文件頭、數(shù)據(jù)長(zhǎng)度以及數(shù)據(jù)位都先寄存到THR中,Len是數(shù)據(jù)長(zhǎng)度,TSR是低8位數(shù)據(jù)幀寄存器,TSR1是高8位數(shù)據(jù)幀寄存器。數(shù)據(jù)長(zhǎng)度Len定為02H,發(fā)送時(shí)先發(fā)送低8位55H,后發(fā)送高8位33H,一共發(fā)送兩遍。發(fā)送的數(shù)據(jù)格式說(shuō)明:當(dāng)發(fā)送55H時(shí),其二進(jìn)制為01010101,則發(fā)送的數(shù)據(jù)的二進(jìn)制數(shù)為00101010111(1位開始位+8位數(shù)據(jù)位+1位奇校驗(yàn)位+1位停止位)。
單片機(jī)部分先對(duì)FPGA發(fā)送過(guò)來(lái)的文件頭進(jìn)行確認(rèn),正確就接收文件,否則放棄接收的數(shù)據(jù)。根據(jù)FPGA發(fā)送模塊的協(xié)議,對(duì)串口控制寄存器SCON和波特率控制寄存器PCON的設(shè)置即可實(shí)現(xiàn)。本文引用地址:http://www.ex-cimer.com/article/151789.htm
3 總結(jié)
目前電子產(chǎn)品的開發(fā)中經(jīng)常要綜合運(yùn)用EDA技術(shù)、計(jì)算機(jī)控制技術(shù)、數(shù)字信號(hào)處理技術(shù),那么電路各部分經(jīng)常需要數(shù)據(jù)交換。本文也是基于此給出這方面應(yīng)用的實(shí)例,供開發(fā)者交流。
評(píng)論