日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > ZYNQ


1、頂層模塊

寫程序都一樣,不能多有的程序都寫在一個模塊里,那樣看起來很麻煩,出了錯誤也不好維護(hù),對于一些小的程序我們可以寫在一個模塊里,但程序一旦復(fù)雜起來還是要懂得模塊化編程的,對于頂層模塊,最好是只寫接口就好了,例如:

這段代碼中,rx_232是我們的底層模塊名,后面跟著的那個rx呢是我們自己取的名字,是任意的。后面的一大串呢就是接口,為了直觀呢,建議大家采用我的這種寫法,看上去比較清楚明白,括號里面的接口是我們頂層文件的接口,括號外面的是我們調(diào)用底層模塊的接口,這些接口要一一對應(yīng)正確才能保證數(shù)據(jù)之間的傳輸。

在頂層模塊中,我們只定義了數(shù)據(jù)輸入接口,用來接收數(shù)據(jù),數(shù)據(jù)輸出接口,用于發(fā)送數(shù)據(jù),時鐘接口,和復(fù)位接口。這四個接口是有輸入輸出關(guān)系的,對于其他的接口,是屬于我們整個模塊內(nèi)部的接口,是模塊與模塊之間的接口,既非輸入,也非輸出,相當(dāng)于一根導(dǎo)線一樣,所以我們把他們定義成wire型變量

2、波特率選擇模塊

單片機(jī)或者計算機(jī)在串口通信時的傳輸速率用波特率表示,9600bps表示的就是每秒鐘傳送9600位的數(shù)據(jù),這里之所以計數(shù)到5027,在這里算一下。

1秒傳送9600位,那么傳送一位的時間就可以算出,即1s=1000_000_000ns,所以傳送一位數(shù)據(jù)需要1000_000_000/9600=104166ns,而我們的時鐘周期為20ns,因此需要計數(shù)到104166/20=5028個時鐘周期

下面是串口通信時序圖

我再來解釋一下這個圖吧,我當(dāng)時學(xué)單片機(jī)的時候還真是沒怎么重視這張圖,只知道只要一個指令就可以發(fā)送,沒有真正搞清楚是怎么發(fā)送和接受的,那就在這里復(fù)習(xí)一下吧,計算機(jī)和單片機(jī)之間進(jìn)行通信,這里用的是rs232通信方式,即通信之前,計算機(jī)和單片機(jī)之前要設(shè)定好相同的波特率,只有波特率相同了才能進(jìn)行通信。

其次,計算機(jī)發(fā)送數(shù)據(jù)時要先發(fā)送一個起始位,一般是低電平,后面跟著的是8位數(shù)據(jù)位,奇偶校驗位,停止位等,當(dāng)起始位低電平信號傳送到我們的接收端口時,在接收模塊中會發(fā)送一個命令給波特率時鐘計數(shù)器,開始計時,計時到一半的時候會產(chǎn)生一個采樣高脈沖信號,當(dāng)接收模塊檢測到這個高脈沖之后就會將數(shù)據(jù)存到寄存器中,當(dāng)檢測到第11個脈沖信號時,也就是代表一幀的數(shù)據(jù)接收完畢,發(fā)送模塊就給波特率選擇模塊發(fā)送一個停止信號告訴它停止計時。

同時,當(dāng)數(shù)據(jù)接收完畢之后也會產(chǎn)生一個信號告訴發(fā)送模塊,信號已經(jīng)接收完畢,準(zhǔn)備發(fā)送,這個時候發(fā)送模塊再給波特率計時模塊發(fā)送一個信號開始計時,計數(shù)到某一位的中間時產(chǎn)生一個采樣信號,當(dāng)發(fā)送模塊檢測到采樣信號之后就將寄存器里的數(shù)據(jù)送到發(fā)送端,每次只送一位,這樣就實(shí)現(xiàn)了數(shù)據(jù)的接收與發(fā)送。

下面是波特率計時模塊的主要程序部分

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

在接收模塊中,為了準(zhǔn)確的檢測計算機(jī)發(fā)送來的數(shù)據(jù)起始位的那個低電平信號,用到了邊沿脈沖檢測法,可以有效的避免毛刺現(xiàn)象帶來的問題

下面是發(fā)送部分的主要程序段

4、數(shù)據(jù)發(fā)送模塊

發(fā)送模塊原理上和接受模塊是一樣的,不同點(diǎn)就是接收模塊通過邊沿檢測法檢測起始位低電平信號來啟動接收數(shù)據(jù),而發(fā)送模塊是通過檢測數(shù)據(jù)發(fā)送完畢后,我們認(rèn)為得置一個低電平信號,發(fā)送模塊通過檢測這個低電平信號來啟動發(fā)送。見下圖

下面是生成的RTL視圖

下面是測試結(jié)果


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