www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化

1引言
隨著電子技術(shù)的發(fā)展,現(xiàn)場可編程門陣列FPGA和復(fù)雜可編程邏輯器件CPLD的出現(xiàn),使得電子系統(tǒng)的設(shè)計(jì)者利用與器件相應(yīng)的電子CAD軟件,在實(shí)驗(yàn)室里就可以設(shè)計(jì)自己的專用集成電路ASIC器件。這種可編程ASIC不僅使設(shè)計(jì)的產(chǎn)品達(dá)到小型化、集成化和高可靠性,而且器件具有用戶可編程特性,大大縮短了設(shè)計(jì)周期,減少了設(shè)計(jì)費(fèi)用,降低了設(shè)計(jì)風(fēng)險(xiǎn)。目前數(shù)字系統(tǒng)的設(shè)計(jì)可以直接面向用戶需求,根據(jù)系統(tǒng)的行為和功能要求,自上至下地逐層完成相應(yīng)的描述﹑綜合﹑優(yōu)化﹑仿真與驗(yàn)證,直到生成器件,實(shí)現(xiàn)電子設(shè)計(jì)自動(dòng)化。其中電子設(shè)計(jì)自動(dòng)化(EDA)的關(guān)鍵技術(shù)之一就是可以用硬件描述語言(HDL)來描述硬件電路。VHDL是用來描述從抽象到具體級(jí)別硬件的工業(yè)標(biāo)準(zhǔn)語言,它是由美國國防部在80年代開發(fā)的HDL,現(xiàn)在已成為IEEE承認(rèn)的標(biāo)準(zhǔn)硬件描述語言。VHDL支持硬件的設(shè)計(jì)、驗(yàn)證、綜合和測試,以及硬件設(shè)計(jì)數(shù)據(jù)的交換、維護(hù)、修改和硬件的實(shí)現(xiàn),具有描述能力強(qiáng)、生命周期長、支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用等優(yōu)點(diǎn)。利用VHDL這些優(yōu)點(diǎn)和先進(jìn)的EDA工具,根據(jù)具體的實(shí)際要求,我們可以自己來設(shè)計(jì)串口異步通信電路。

2串口異步通信的幀格式和波特率

2.1串行異步通信的幀格式
在串行異步通信中,數(shù)據(jù)位是以字符為傳送單位,數(shù)據(jù)位的前、后要有起始位、停止位,另外可以在停止位的前面加上一個(gè)比特位(bit)的校驗(yàn)位。其幀格式如圖1所示。


起始位是一個(gè)邏輯0,總是加在每一幀的開始,為的是提醒數(shù)據(jù)接收設(shè)備接收數(shù)據(jù),在接收數(shù)據(jù)位過程中又被分離出去。數(shù)據(jù)位根據(jù)串行通信協(xié)議,允許傳輸?shù)淖址L度可以為5、6、7或8位。通常數(shù)據(jù)位為7位或8位,如果要傳輸非ASCII數(shù)據(jù)(假如使用擴(kuò)展字符設(shè)置的文本或者二進(jìn)制數(shù)據(jù)),數(shù)據(jù)位格式就需要采用8位。數(shù)據(jù)位被傳輸時(shí)從一個(gè)字符的最低位數(shù)據(jù)開始,最高位數(shù)據(jù)在最后。例如字母C在ASCII表中是十進(jìn)制67,二進(jìn)制的01000011,那么傳輸?shù)膶⑹?1000010。校驗(yàn)位是為了驗(yàn)證傳輸?shù)臄?shù)據(jù)是否被正確接收,常見的校驗(yàn)方法是奇、偶校驗(yàn)。另外校驗(yàn)位也可以為0校驗(yàn)或者1校驗(yàn),即不管數(shù)據(jù)位中1的個(gè)數(shù)是多少,校驗(yàn)位始終為0或者1,如果在傳輸?shù)倪^程中校驗(yàn)位發(fā)生了變化,這就提示出現(xiàn)了某類錯(cuò)誤。不過,在傳輸數(shù)據(jù)的時(shí)候,也可以不用校驗(yàn)位。停止位,為邏輯1,總在每一幀的末尾,可以是1位、1.5位或者2位。最常用的是1位,超過1位的停止位通常出現(xiàn)在這樣的場合:在處理下一個(gè)即將發(fā)送來的字符之前接收設(shè)備要求附加時(shí)間。

2.2串行異步通信的波特率
串行口每秒發(fā)送或接收數(shù)據(jù)的位數(shù)為波特率。若發(fā)送或接收一位數(shù)據(jù)需要時(shí)間為t,則波特率為1/t,相應(yīng)的發(fā)送或接收時(shí)鐘為1/tHz。發(fā)送和接收設(shè)備的波特率應(yīng)該設(shè)置成一致,如果兩者的波特率不一致,將會(huì)出現(xiàn)校驗(yàn)錯(cuò)或者幀錯(cuò)。

3串行發(fā)送電路的設(shè)計(jì)

為簡化電路設(shè)計(jì)的復(fù)雜性,采用的幀格式為:1位開始位+8位數(shù)據(jù)位+1位停止位,沒有校驗(yàn)位,波特率為9600。

3.1波特率發(fā)生器的設(shè)計(jì)
要產(chǎn)生9600波特率,要有一個(gè)不低于9600Hz的時(shí)鐘才可以。為產(chǎn)生高精度的時(shí)鐘,我選了6MHz(6M能整除9600)的晶振來提供外部時(shí)鐘。當(dāng)然,你也可以選其它頻率的時(shí)鐘來產(chǎn)生9600Hz的時(shí)鐘。對(duì)于6MHz時(shí)鐘,需要設(shè)計(jì)一個(gè)625進(jìn)制的分頻器來產(chǎn)生9600波特率的時(shí)鐘信號(hào)。用VHDL設(shè)計(jì)分頻器較簡單,在這里就不再給出源程序了。

3.2發(fā)送電路的設(shè)計(jì)
根據(jù)采用的幀格式,需要發(fā)送的數(shù)據(jù)為10位(1位開始位、8位數(shù)據(jù)位、1位停止位),在發(fā)送完這10位后,就應(yīng)該停止發(fā)送,并使發(fā)送端電平處于邏輯1,然后等候下次的發(fā)送。下面是實(shí)現(xiàn)上述功能的VHDL源程序:

libraryieee;

useieee.std_logic_1164.all;

entityComis

port(clk,en:instd_logic;

Send_data:instd_logic_vector(9downto0);

serial:outstd_logic);

endcom;

architecturecom_arcofcomis

begin

process(clk)

variablecount:integerrange0to9:=0;

begin

ifen=‘0‘then

count:=0;

serial<=‘1‘;

elsifrising_edge(clk)then

ifcount=9then

serial<=Send_data(9);

else

serial<=Send_data(count);

count:=count+1;

endif;

endif;

endprocess;

endcom_arc;

其中,Send_data(0to9)表示需要發(fā)送的數(shù)據(jù)幀,發(fā)送時(shí),開始位Send_data(0)必須為邏輯0,停止位Send_data(9)必須為邏輯1,否者與硬件電路連接的設(shè)備接收到的數(shù)據(jù)會(huì)出現(xiàn)錯(cuò)誤。在發(fā)送每一幀之前,首先給輸入端en一個(gè)低電平脈沖,讓電路復(fù)位(count置0),然后開始發(fā)送。變量count在進(jìn)程中用來記錄發(fā)送的數(shù)據(jù)數(shù)目,當(dāng)數(shù)據(jù)幀發(fā)送完后,發(fā)送端就一直發(fā)送停止位(邏輯1)。

3.3時(shí)序仿真
選EDA工具,對(duì)VHDL源程序編譯。用的是Altera公司的MAX+plusII9.3Baseline,這個(gè)工具支持VHDL的編譯、仿真。圖2是編譯后的仿真結(jié)果,其中,Clk為頻率9600Hz的時(shí)鐘,Send_data0為開始位,Send_data[8..0]為數(shù)據(jù)位,Send_data9為停止位。結(jié)果顯示,輸出完全是按數(shù)據(jù)幀格式發(fā)送的。

4串行接收電路的設(shè)計(jì)
接收電路比發(fā)送電路要復(fù)雜,接收電路要時(shí)實(shí)檢測起始位的到來,一旦檢測到起始位到,就要將這一幀數(shù)據(jù)接收下來。為提高接收的準(zhǔn)確性,減少誤碼率,每一位數(shù)據(jù)都用3倍頻的波特率對(duì)數(shù)據(jù)進(jìn)行采樣(如圖3所示),然后對(duì)3次采樣結(jié)果進(jìn)行判決:如果3次采樣中至少有2次為高電平,則接收這一位數(shù)據(jù)被判決為高電平,否者,為低電平。

4.1波特率發(fā)生器和采樣時(shí)鐘的設(shè)計(jì)
為完成3次采樣,除了頻率為9600Hz的接收時(shí)鐘外,還要有一個(gè)3倍頻的采樣時(shí)鐘。下面是實(shí)現(xiàn)上述功能的VHDL源程序:

libraryieee;
useieee.std_logic_1164.all;

entitycount625is

port(clk,en:instd_logic;Clock1,Clock3:outstd_logic);

endcount625;

architecturecount625_arcofcount625is

begin

process(clk,en)

variablecount:integerrange0to625:=0;

begin

ifen=‘0‘then

NUll;

elsif(rising_edge(clk))then

count:=count+1;

ifcount=625then

Clock1<=‘1‘;count:=0;

else

Clock1<=‘0‘;

endif;

if(count=100orcount=300orcount=500)then

Clock3<=‘1‘;

else

Clock3<=‘0‘;

endif;

endif;

endprocess;

endcount625_arc;

其中clk為6MHz的時(shí)鐘;en控制波形的產(chǎn)生;Clock1為9600Hz的接收時(shí)鐘;Clock3為3倍頻的采樣時(shí)鐘。

4.2接收電路的設(shè)計(jì)
串行接收電路首先要能判斷接收數(shù)據(jù)的到來,即每一幀的開始,然后對(duì)數(shù)據(jù)進(jìn)行3次采樣,最后判決輸出。為簡化設(shè)計(jì),幀格式仍然采用1位開始位+8位數(shù)據(jù)位+1位停止位。下面是設(shè)計(jì)的接收電路VHDL程序:

libraryieee;

useieee.std_logic_1164.all;

entitycom_receive10is


port(com,clr,clk1,clk3:instd_logic;Q:outstd_logic_vector(0to9);Valid:outstd_logic);
endcom_receive10;

architecturecom_receive10_arcofcom_receive10is

SignalEnable:std_logic:=‘1‘;

SignalHold:std_logic:=‘0‘;

SignalN:std_logic_vector(0to2):="000";

begin

Valid<=EnableandHold;

process(clk1,clr)

variableNum:integerrange0to9:=0;

begin

ifclr=‘0‘then

Enable<=‘1‘Num:=0;Q<="0000000000";

elsif(rising_edge(clk1))then

Q(Num)<=(N(0)andN(1))or(N(1)andN(2))or(N(0)andN(2));

ifNum=9then

Enable<=‘0‘;Num:=0;

else

Num:=Num+1;

endif;

endif;

endprocess;

process(clk3,clr)

variablem:integerrange0to2:=0;

begin

ifclr=‘0‘then

m:=0;

elsif(rising_edge(clk3))then

N(m)<=com;

ifm=2then

m:=0;

else

m:=m+1;

endif;

endif;

endprocess;

process(clr,com)

begin


ifclr=‘0‘then
Hold<=‘0‘;

elsiffalling_edge(com)then

Hold<=‘1‘;

endif;

endprocess;

endcom_receive10_arc;

其中,N(m)<=com用來對(duì)波形采樣;Q(Num)<=(N(0)andN(1))or(N(1)andN(2))or(N(0)andN(2))是對(duì)其中1位數(shù)據(jù)的3次采樣結(jié)果判決;Num用來記錄接收的數(shù)據(jù)位數(shù);falling_edge(com)是用來時(shí)實(shí)檢測每一幀的起始位(即下降沿)的到來;Valid<=EnableandHold用來輸出到波特率發(fā)生器電路單元控制時(shí)鐘的產(chǎn)生,最后將一幀的10位數(shù)據(jù)輸出。

用MAX+plusII9.3Baseline將上面兩個(gè)VHDL文件制成庫器件,然后在電路圖上調(diào)出來,最后做成的串行接收電路圖如圖4所示。


4.3時(shí)序仿真
時(shí)序仿真如圖5所示,Receive為接收到的序

列波形,最后結(jié)果:接收到的數(shù)據(jù)位為6D,起始位為0,停止位為1。

5結(jié)束語

VHDL語言設(shè)計(jì)的出現(xiàn)從根本上改變了以往數(shù)字電路的設(shè)計(jì)模式,使電路設(shè)計(jì)由硬件設(shè)計(jì)轉(zhuǎn)變?yōu)檐浖O(shè)計(jì),這樣提高了設(shè)計(jì)的靈活性,降低了電路的復(fù)雜程度,修改起來也很方便。利用VHDL設(shè)計(jì)的靈活性,根據(jù)串行通信協(xié)議的要求,可以在實(shí)驗(yàn)室利用先進(jìn)的EDA工具,用VHDL設(shè)計(jì)出符合自己實(shí)際需求的異步串行通信電路。

本文設(shè)計(jì)出的基于VHDL異步串行通信電路,在實(shí)驗(yàn)室已經(jīng)與計(jì)算機(jī)串口RS-232進(jìn)行了通信實(shí)驗(yàn)(注意:TTL和RS-232邏輯電平的轉(zhuǎn)換)。實(shí)驗(yàn)證明,0至255的所有數(shù)據(jù)都能被正確收、發(fā)。

參考文獻(xiàn):

[1]ARMSTRONGJR,F(xiàn)RAYFG.VHDL設(shè)計(jì)表示和綜合[M].李宗伯,王蓉暉譯.北京:機(jī)械工業(yè)出版社,2002.

[2]SKAHILLK.可編程邏輯系統(tǒng)的VHDL設(shè)計(jì)技術(shù)[M].朱明程,孫普譯.南京:東南大學(xué)出版社,1998.

[3]仇玉章.微型計(jì)算機(jī)系統(tǒng)接口技術(shù)[M].南京:江蘇科技出版社,1997.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉