基于FPGA和單片機的串行通信接口設計
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;
其中各信號的說(shuō)明已在程序中標明了。波形仿真圖如圖2所示。

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