基于CPLD的異步串行通訊控制器的研究與設計
串行數據幀與接收時(shí)鐘是異步的,所以接收器功能實(shí)現中的關(guān)鍵是接收器時(shí)鐘與每個(gè)接收字符的同步。一個(gè)有效的方法是接收器采用高速率時(shí)鐘對串行數據進(jìn)行采樣,通常采樣頻率是位時(shí)鐘頻率的整數倍,也就是選擇比較高的波特率因子。理論上倍數越高接收數據各位的分辨率越高,實(shí)際中一般最大選擇16倍。
接收器應該盡可能地在靠近每個(gè)數據位周期的中心處進(jìn)行采樣。如果接收器能很好地預測起始位的開(kāi)始,那么它可在起始位的下降沿到來(lái)之后,等待半個(gè)位周期再采樣數據位。此后,接收器每等待一個(gè)位周期采樣一個(gè)數據位,直至收到最后一位為止。
接收過(guò)程主要由一個(gè)3位狀態(tài)機實(shí)現,其狀態(tài)有空閑狀態(tài)、接收起始位、接收數據位、接收奇偶校驗位以及接收停止位。每一個(gè)狀態(tài)表明了當前正在接收到數據屬于哪一種字符,并且根據當前接收字符的狀態(tài)驅動(dòng)其他部件進(jìn)行合適的操作。狀態(tài)轉換機的轉換圖如圖4所示。
4基于CPLD的實(shí)現和仿真
可編程邏輯器件(PLD)是在20世紀80年代迅速發(fā)展起來(lái)的一種新型集成電路,隨著(zhù)大規模集成電路的進(jìn)一步發(fā)展,出現了PAL和GAL邏輯器件,而復雜可編程邏輯器件CPLD是在此邏輯器件基礎上發(fā)展起來(lái)的,它是由大量邏輯宏單元構成的。通過(guò)配置,可以將這些邏輯宏單元形成不同的硬件結構,從而構成不同的電子系統,完成不同的功能。正是CPLD的這種硬件重構的靈活性,使得設計者能夠將用硬件描述語(yǔ)言(如VHDL或者Veritog HDL)描述的電路在CPLD中實(shí)現。這樣一來(lái),同一塊CPLD能實(shí)現許多完全不同的電路結構和功能。同時(shí)也大大簡(jiǎn)化了系統的調試,從而能極大地縮短系統的研發(fā)周期。

于是我們在驗證這一環(huán)節中,采用Xilinx公司的XC9500系列的XC95108 CPLD來(lái)驗證該方案的合理性。在用VHDL語(yǔ)言實(shí)現圖2的功能時(shí),采用自頂向下的設計方法,先設計一個(gè)TOP頂層模塊,它里面包括了接口控制電路模塊,調制解調模塊,發(fā)送模塊和接收模塊。其中接口控制電路模塊包含了圖2中的波特率控制邏輯電路,數據總線(xiàn)緩沖器和讀寫(xiě)控制邏輯電路。設計實(shí)現中比較復雜的部分就是接口控制電路的實(shí)現。在接口控制電路模塊中,設計了接收緩沖寄存器(RBR),發(fā)送保持寄存器(THR),中斷使能寄存器(IER),中斷標識寄存器(IIR),模式選擇控制寄存器(LCR),調制解調控制寄存器(MCR),接收發(fā)送狀態(tài)寄存器(LSR),調制解調狀態(tài)寄存器(MSR),它們的存儲器映射地址分別設置為000~110,因為該設計中把控制器設計為不能同時(shí)接收和發(fā)送,所以接收緩沖寄存器(RBR)和發(fā)送保持寄存器(THR)共用一個(gè)地址。其中,模式選擇控制寄存器(LCR)用來(lái)設置,要發(fā)送數據的位數(從低到高發(fā)送),奇偶校驗位的位數和停止位的位數。
評論