新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于CPLD的異步串行通訊控制器的研究與設計

        基于CPLD的異步串行通訊控制器的研究與設計

        作者: 時間:2010-03-26 來源:網絡 收藏
        3.2接收數據模塊

        串行數據幀與接收時鐘是異步的,所以接收器功能實現中的關鍵是接收器時鐘與每個接收字符的同步。一個有效的方法是接收器采用高速率時鐘對串行數據進行采樣,通常采樣頻率是位時鐘頻率的整數倍,也就是選擇比較高的波特率因子。理論上倍數越高接收數據各位的分辨率越高,實際中一般最大選擇16倍。

        接收器應該盡可能地在靠近每個數據位周期的中心處進行采樣。如果接收器能很好地預測起始位的開始,那么它可在起始位的下降沿到來之后,等待半個位周期再采樣數據位。此后,接收器每等待一個位周期采樣一個數據位,直至收到最后一位為止。

        接收過程主要由一個3位狀態機實現,其狀態有空閑狀態、接收起始位、接收數據位、接收奇偶校驗位以及接收停止位。每一個狀態表明了當前正在接收到數據屬于哪一種字符,并且根據當前接收字符的狀態驅動其他部件進行合適的操作。狀態轉換機的轉換圖如圖4所示。

        4基于的實現和仿真

        可編程邏輯器件(PLD)是在20世紀80年代迅速發展起來的一種新型集成電路,隨著大規模集成電路的進一步發展,出現了PAL和GAL邏輯器件,而復雜可編程邏輯器件是在此邏輯器件基礎上發展起來的,它是由大量邏輯宏單元構成的。通過配置,可以將這些邏輯宏單元形成不同的硬件結構,從而構成不同的電子系統,完成不同的功能。正是的這種硬件重構的靈活性,使得設計者能夠將用硬件描述語言(如VHDL或者Veritog HDL)描述的電路在CPLD中實現。這樣一來,同一塊CPLD能實現許多完全不同的電路結構和功能。同時也大大簡化了系統的調試,從而能極大地縮短系統的研發周期。



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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 芜湖市| 永和县| 萝北县| 秭归县| 镇沅| 河津市| 乌拉特后旗| 富锦市| 阳西县| 甘德县| 康定县| 日照市| 赣榆县| 怀远县| 远安县| 昭通市| 崇礼县| 龙川县| 渝北区| 留坝县| 宣化县| 虎林市| 姜堰市| 宁海县| 烟台市| 柳河县| 华蓥市| 临武县| 专栏| 交口县| 高阳县| 车致| 甘德县| 孝昌县| 乡宁县| 福贡县| 庆云县| 哈巴河县| 虎林市| 广南县| 库伦旗|