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

當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]一、硬件電路設(shè)計(jì)本文選用CPLD 是ALTERA 公司的EPM240T100,結(jié)合MAX232 接口芯片進(jìn)行串口通信設(shè)計(jì),框圖如下圖1 所示。 圖1 CPLD串口通信模塊硬件設(shè)計(jì)二、VHDL程序模塊設(shè)計(jì)及描述使用VHDL 對(duì)CPLD 進(jìn)行編程,設(shè)計(jì)3 個(gè)

一、硬件電路設(shè)計(jì)

本文選用CPLD 是ALTERA 公司的EPM240T100,結(jié)合MAX232 接口芯片進(jìn)行串口通信設(shè)計(jì),框圖如下圖1 所示。


圖1 CPLD串口通信模塊硬件設(shè)計(jì)

二、VHDL程序模塊設(shè)計(jì)及描述

使用VHDL 對(duì)CPLD 進(jìn)行編程,設(shè)計(jì)3 個(gè)模塊,波特率發(fā)生模塊,接收器,發(fā)送器。

1. 波特率發(fā)生模塊

波特率發(fā)生器實(shí)際是一個(gè)分頻器,如前所述,本文設(shè)計(jì)的波特率為19.2kb/ 秒,設(shè)計(jì)使用的時(shí)鐘頻率為10MHz,所以計(jì)數(shù)器進(jìn)行計(jì)數(shù)時(shí)計(jì)數(shù)到260進(jìn)行翻轉(zhuǎn)。

程序如下(關(guān)鍵部分保留,非必要部分用……代替):

……

ENTITY uart IS

GENERIC(d_len:INteGER:=8);

PORT (

f10MHz:IN STD_LOGIC;-- 系統(tǒng)時(shí)鐘

reset:IN STD_LOGIC;-- 復(fù)位信號(hào)

rxd:IN STD_LOGIC; -- 串行接收

txd:OUT STD_LOGIC;-- 串行發(fā)送

);

END uart;

ARCHITECTURE behav of uart IS

……

BEGIN

rxds<=rxd;

PROCESS(f10MHz,reset)

-- 設(shè)置波特率發(fā)生器 19200kb/s

VARIABLE clk19200hz: STD_LOGIC;

VARIABLE count:INTEGER RANGE 0 TO 260;

BEGIN

IF reset='0' THEN

count:=0;

clk19200hz:='0';

ELSIF f10MHz'EVENT AND f10MHz='1' THEN

IF count=260 THEN

count:=0;clk19200hz:= NOT clk19200hz;

ELSE

count:=count+1;

END IF;

END IF;

baud_rate<=clk19200hz;

END PROCESS;

2. 發(fā)送模塊

發(fā)送部分采用狀態(tài)機(jī)t_state 進(jìn)行編程,共設(shè)兩個(gè)值:t-start 和t_shift,分別表示發(fā)送開(kāi)始以及發(fā)送保持狀態(tài)。復(fù)位鍵按下時(shí)設(shè)置到t-start 狀態(tài),并將發(fā)送數(shù)據(jù)位設(shè)為“1”, 發(fā)送的數(shù)據(jù)位數(shù)計(jì)數(shù)為0,在t-start 狀態(tài),狀態(tài)機(jī)將處于這一個(gè)狀態(tài)并等待波特率計(jì)數(shù)信號(hào)的電平上升沿到來(lái)。上升沿到來(lái)時(shí),依據(jù)t_state 狀態(tài)的不同值做不同處理,如果是t-start 開(kāi)始狀態(tài)則先讀待發(fā)送的數(shù)據(jù),并發(fā)送開(kāi)始位“0”,然后將狀態(tài)轉(zhuǎn)到發(fā)送保持t_shift 狀態(tài),在發(fā)送保持t_shift 狀態(tài),不斷判斷發(fā)送的數(shù)據(jù)位數(shù)是否滿8 位,如果滿了則回歸t-start 狀態(tài),否則繼續(xù)發(fā)送,保持在t_shift 狀態(tài),為避免干擾將其余情況下的狀態(tài)自動(dòng)跳轉(zhuǎn)到t-start 狀態(tài)。程序如下:

PROCESS(baud_rate,reset,data)

-- 數(shù)據(jù)發(fā)送部分

VARIABLE t_no:INTEGER RANGE 0 TO 8;

-- 發(fā)送的數(shù)據(jù)各位的位序號(hào)

VARIABLE txds:STD_LOGIC;

VARIABLE dtmp:STD_LOGIC_VECTOR(7

DOWNTO 0);

BEGIN

IF reset='0' THEN

t_state<=t_start;

txds:='1';

t_no:=0;

ELSIF baud_rate'event AND baud_rate='1' THEN

CASE t_state IS

WHEN t_start=>

dtmp:=data;

txds:='0'; -- 發(fā)送開(kāi)始

t_state<=t_shift;

WHEN t_shift=> IF t_no=d_len THEN

txds:='1'; -- 發(fā)送結(jié)束

t_no:=0;

t_state<=t_start;

ELSE

txds:=dtmp(t_no); -- 發(fā)送一字節(jié)數(shù)據(jù)

t_no:=t_no+1;

END IF;

WHEN thers=>t_state<=t_start;

END CASE;

END IF;

txd<=txds;

END PROCESS;

3. 數(shù)據(jù)接收模塊

接收部分采用狀態(tài)機(jī)進(jìn)行編程,共設(shè)兩個(gè)狀態(tài):

r-start 和r_shift 分別表示接收開(kāi)始以及接收保持狀態(tài);復(fù)位鍵按下時(shí)設(shè)置到r-start 狀態(tài),并將待接收存放數(shù)據(jù)的data 賦值為“00000000”, 在r-start狀態(tài),接收狀態(tài)機(jī)將處于這一個(gè)狀態(tài)并等待波特率計(jì)數(shù)信號(hào)的電平上升沿到來(lái)。波特率發(fā)生模塊的計(jì)數(shù)上升沿到來(lái),依據(jù)狀態(tài)的不同值做不同處理,如果是r-start 接收開(kāi)始狀態(tài)則等待開(kāi)始位信號(hào),檢測(cè)到rxds=‘0’的開(kāi)始位信號(hào)好轉(zhuǎn)到r_shift 接收保持狀態(tài),r_shift 接收保持狀態(tài)會(huì)不斷判斷接收的數(shù)據(jù)位數(shù)是否滿8 位,如果滿了則回歸r-start 狀態(tài),否則繼續(xù)接收,保持在r_shift 接收保持狀態(tài),為避免干擾將其余情況下的狀態(tài)自動(dòng)跳轉(zhuǎn)到r-start 接收開(kāi)始狀態(tài),程序與發(fā)送部分類似,此處省略。

三、串口通信的VHDL程序仿真結(jié)果

串行口通信的仿真結(jié)果如圖2 所示。從圖中可以看出,每發(fā)送完一個(gè)字節(jié),即8 位數(shù)據(jù)后,線路上將輸出一個(gè)高電平,之后又開(kāi)始傳送下一個(gè)字節(jié)。

同樣,仿真波形顯示,有效數(shù)據(jù)到達(dá)接收管腳rxd之前,線路上保持為高電平,直到收到一個(gè)低電平起始位,將該起始位后的8 位數(shù)據(jù)串行接收后依次送到保存接收結(jié)果的信號(hào)data 的各位。


圖2 串行口通信仿真波形圖

串口通信的硬件驗(yàn)證

將程序通過(guò)在系統(tǒng)編程下載入配套的CPLD 電路板進(jìn)行硬件驗(yàn)證,按照以下步驟進(jìn)行。

(1)確定管腳對(duì)應(yīng)關(guān)系:

串行接收管腳rxd 與max232 的12 腳R1OUT對(duì)應(yīng); 串行發(fā)送管腳txd 與max232 的11 腳T1IN對(duì)應(yīng);復(fù)位信號(hào)reset 與按鍵S1 對(duì)應(yīng)。

(2)由QUARTUS II 進(jìn)行管腳分配:

f10MHz 在MAXII 芯片上對(duì)應(yīng)的管腳號(hào)為12 ;S1 在MAXII 芯片上對(duì)應(yīng)的管腳號(hào)為21 ; rxd 在MAXII 芯片上對(duì)應(yīng)的管腳號(hào)為89; txd 在MAXII 芯片上對(duì)應(yīng)的管腳號(hào)為90。

(3)電平定義:

按鍵S1 按下時(shí)表示輸入信號(hào)為低電平。

應(yīng)用“ 串口調(diào)試助手” 進(jìn)行驗(yàn)證, 在發(fā)送窗口隨機(jī)輸入需要發(fā)送的字符,可以發(fā)現(xiàn)由PC 機(jī)發(fā)給CPLD 的字符被CPLD 傳送回來(lái)并在接收窗口顯示出來(lái)。在批量隨機(jī)數(shù)據(jù)發(fā)送后分析:在傳輸時(shí)19.2kb/s 傳輸速率下,誤碼率達(dá)10-8。

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

在電子電路中,電解電容的紋波電流承受能力直接影響其使用壽命和電路穩(wěn)定性。準(zhǔn)確測(cè)試紋波電流不僅能驗(yàn)證電容性能是否達(dá)標(biāo),也是電路設(shè)計(jì)可靠性驗(yàn)證的關(guān)鍵環(huán)節(jié)。以下從測(cè)試原理、設(shè)備準(zhǔn)備、操作步驟到數(shù)據(jù)解讀,全面介紹電解電容紋波電流...

關(guān)鍵字: 電解電容 紋波電流 電路設(shè)計(jì)

在電子電路設(shè)計(jì)與實(shí)踐中,穩(wěn)壓芯片是維持穩(wěn)定輸出電壓的關(guān)鍵組件。然而,當(dāng)我們將兩個(gè)輸出電壓不同的穩(wěn)壓芯片的輸出腳連接在一起時(shí),會(huì)引發(fā)一系列復(fù)雜的物理現(xiàn)象和潛在風(fēng)險(xiǎn)。這一操作不僅違反了常規(guī)的電路設(shè)計(jì)原則,還可能對(duì)電路系統(tǒng)造成...

關(guān)鍵字: 穩(wěn)壓 芯片 電路設(shè)計(jì)

在當(dāng)今電子技術(shù)飛速發(fā)展的時(shí)代,隨著電子產(chǎn)品不斷向小型化、高性能化邁進(jìn),印刷電路板(PCB)的設(shè)計(jì)變得愈發(fā)復(fù)雜和精密。過(guò)孔,作為 PCB 中連接不同層線路的關(guān)鍵元件,其對(duì)信號(hào)完整性的影響已成為電路設(shè)計(jì)中不可忽視的重要因素。...

關(guān)鍵字: 印刷電路板 電路設(shè)計(jì) 信號(hào)

IIC(Inter IC Bus)協(xié)議是一種廣泛應(yīng)用于嵌入式系統(tǒng)中的同步半雙工通信協(xié)議。隨著電子設(shè)備的復(fù)雜性不斷增加,高多層電路板設(shè)計(jì)變得越來(lái)越普遍。在高多層電路板中實(shí)現(xiàn)可靠的IIC通信,需要綜合考慮布線策略、電源設(shè)計(jì)、...

關(guān)鍵字: 電路板 電路設(shè)計(jì)

在現(xiàn)代高速、高密度的電路設(shè)計(jì)領(lǐng)域,電路完整性是確保電子系統(tǒng)可靠運(yùn)行的關(guān)鍵要素?;芈冯姼凶鳛殡娐分械囊粋€(gè)重要參數(shù),對(duì)電路完整性有著多方面的深遠(yuǎn)影響。從信號(hào)傳輸?shù)臏?zhǔn)確性到電源系統(tǒng)的穩(wěn)定性,回路電感在其中扮演著不容忽視的角色。...

關(guān)鍵字: 電子系統(tǒng) 回路電感 電路設(shè)計(jì)

在現(xiàn)代汽車電子控制系統(tǒng)中,CAN(Controller Area Network,控制器局域網(wǎng))總線作為一種高效、可靠的通信協(xié)議,發(fā)揮著舉足輕重的作用。它不僅連接著發(fā)動(dòng)機(jī)控制單元(ECU)、變速器控制單元、制動(dòng)系統(tǒng)控制單...

關(guān)鍵字: 車規(guī)級(jí)CAN總線 電路設(shè)計(jì)

串口全稱是串行接口(Serial Interface),串口通訊指僅用一對(duì)傳輸線就能將數(shù)據(jù)以比特位進(jìn)行傳輸?shù)囊环N通訊方式。盡管串口通訊必按字節(jié)傳輸?shù)牟⑿型ㄐ怕?,但是串口可以在僅用兩根線的情況下完成數(shù)據(jù)傳輸,大大降低了成本...

關(guān)鍵字: 串口 UART

隨著電腦技術(shù)的發(fā)展,一些老的設(shè)備在新電腦上不能被使用,主要原因是不管是臺(tái)式電腦,還是筆記本電腦,都很少有串口接口,也就是我們常說(shuō)的COM口。好在這些設(shè)備都有USB接口,不妨通過(guò)接口轉(zhuǎn)換的方式,使我們的設(shè)備在新電腦上重新被...

關(guān)鍵字: 串口 USB

串口:串口是一個(gè)泛稱,UART、TTL、RS232、RS485都遵循類似的通信時(shí)序協(xié)議,因此都被通稱為串口。串口通訊應(yīng)用是工控人必須掌握的一個(gè)技能,幾乎在每一個(gè)項(xiàng)目中都會(huì)用到,今天我們就來(lái)詳細(xì)比較一下它們究竟有何區(qū)別。

關(guān)鍵字: 串口 協(xié)議

串聯(lián)一個(gè)二極管,是利用二極管的單向?qū)щ姷奶匦?,?shí)現(xiàn)了最簡(jiǎn)單可靠的低成本防反接功能電路。這種低成本方案一般在小電流的場(chǎng)合,類似小玩具等。

關(guān)鍵字: 電路設(shè)計(jì) 串聯(lián)
關(guān)閉