當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]在某控制信號(hào)處理系統(tǒng)中,選用ADSP-BF561作為主控機(jī),外接鍵盤,LCD顯示屏,標(biāo)準(zhǔn)RS232接口,實(shí)時(shí)時(shí)鐘等,通過DSP編程來實(shí)現(xiàn)對(duì)各個(gè)功能模塊的控制,同時(shí)產(chǎn)生多路的數(shù)字IO信號(hào)。

    在某控制信號(hào)處理系統(tǒng)中,選用ADSP-BF561作為主控機(jī),外接鍵盤,LCD顯示屏,標(biāo)準(zhǔn)RS232接口,實(shí)時(shí)時(shí)鐘等,通過DSP編程來實(shí)現(xiàn)對(duì)各個(gè)功能模塊的控制,同時(shí)產(chǎn)生多路的數(shù)字IO信號(hào)。該控制系統(tǒng)還包括電源、時(shí)鐘、CPLD、FLASH,JTAG調(diào)試器、復(fù)位電路等基本組成部分,系統(tǒng)框圖如圖1所示。

                  圖1 基于ADSP-BF561的控制信號(hào)處理系統(tǒng)框圖

    系統(tǒng)電源模塊選用TPS54350來實(shí)現(xiàn),外圍電路不同的RC值,可以構(gòu)成不同的輸出電壓,這里需要產(chǎn)生的是5V、3.3V、1.25V三種電壓。時(shí)鐘電路由48MHz的晶振電路來實(shí)現(xiàn),其輸出作為DSP的外圍時(shí)鐘和CPLD的時(shí)鐘。FLASH用于存儲(chǔ)用戶的應(yīng)用程序,JTAG調(diào)試口在DSP電路設(shè)計(jì)中也是必不可少的。后面對(duì)各個(gè)部分一一介紹,特別是對(duì)復(fù)位電路,數(shù)字IO信號(hào)的產(chǎn)生,以及RS232接口進(jìn)行詳細(xì)的介紹。

1. 鍵盤

    鍵盤選用的是4×4的掃描鍵盤,如圖1所示,由Blackfin的GPIO接口PF5~PF12來實(shí)現(xiàn)。其中,KEY_GP3~KEY_GP0為行線輸入端,初始化為帶上拉電阻的輸入口,中斷使能(下降沿觸發(fā));KEY_GP7~KEY_GP4為列線輸出端,初始化為輸出低電平。鍵盤掃描方法同常規(guī)的掃描鍵盤方法相同。

          
                         圖 1   掃描鍵盤結(jié)構(gòu)圖

2. LCD顯示屏

    LCD顯示屏采用320x240的LCD液晶模塊。320x240液晶模塊配用sed1335驅(qū)動(dòng)接口板,sed1335驅(qū)動(dòng)接口板上配用32K的RAM。LCD除了讀寫信號(hào)線由Blackfin的讀寫信號(hào)來控制以外, 8位數(shù)據(jù)線由Blackfin的低8位數(shù)據(jù)線鎖存輸出,以及其使能信號(hào)由Blackfin的AMS3控制,LCD地址分配為0x2C000000。電路連接如圖2所示。在對(duì)LCD進(jìn)行控制時(shí),除了要建立在LCD上顯示的漢字和英文的字庫以外,還要編寫對(duì)sed1335的底層驅(qū)動(dòng)程序。這可以在LCD自帶的驅(qū)動(dòng)程序的基礎(chǔ)上,進(jìn)行代碼移植,把它改寫成適合BF561的DSP程序。  

              
                           圖 2  LCD連接示意圖 

3.實(shí)時(shí)時(shí)鐘

    控制系統(tǒng)的實(shí)時(shí)時(shí)鐘選用了芯片DS1337來實(shí)現(xiàn)。DS1337是一個(gè)低功耗的串行實(shí)時(shí)時(shí)鐘芯片,它有24h/12h制兩種模式,它可以輸出年、月、日、分、時(shí)、秒的形式。它采用I2C協(xié)議,Blackfin的PF0和PF1作為I2C的CLK和DATA,而PF3作為實(shí)時(shí)時(shí)鐘的中斷FLAG,其電路連接示意圖如圖3所示。

         
                     圖3  實(shí)時(shí)時(shí)鐘電路連接示意圖

4.復(fù)位電路

    為了保證DSP在上電或按下復(fù)位鍵時(shí)能可靠的復(fù)位,一般加一個(gè)復(fù)位延時(shí)電路,選用MAX708S來完成,如圖4所示。 

 
                

                               圖4 復(fù)位電路

    在上電過程中,RESET信號(hào)會(huì)在VCC達(dá)到穩(wěn)定電壓后的一段時(shí)間內(nèi)(約200ms)保持為高,然后再變低。 信號(hào)為RESET的“NOT”,即 會(huì)相對(duì)VCC延時(shí)一段時(shí)間后再變高,如圖5所示。這樣,在DSP的各電源電壓已穩(wěn)定的情況下,DSP的復(fù)位信號(hào)仍為低有效,就可以保證DSP的正常復(fù)位。
           
                        圖5 上電過程中的 信號(hào)

    在上電以后,如果手動(dòng)按下開關(guān),使得MR上的信號(hào)由高→低→高,產(chǎn)生一個(gè)低脈沖,這時(shí), 管腳上也會(huì)輸出一個(gè)低脈沖,只是其低電平持續(xù)的時(shí)間比MR上低電平的持續(xù)時(shí)間長(zhǎng)200ms左右,以保證DSP的復(fù)位可靠完成,如圖6所示。

          
                       圖6 手動(dòng)復(fù)位時(shí)的 信號(hào)

5.   數(shù)字IO信號(hào)的產(chǎn)生

    在該控制系統(tǒng)中,要求產(chǎn)生8路數(shù)字IO信號(hào)。如果把這8路數(shù)字IO信號(hào)看成一個(gè)8bit的數(shù),則需產(chǎn)生一個(gè)有限長(zhǎng)度的非方波的編碼信號(hào),如下圖所示。在T0時(shí)刻需要產(chǎn)生的數(shù)字IO信號(hào)為STAT0,比如說10010101;在在T1時(shí)刻需要產(chǎn)生STAT1,…,在Tn時(shí)刻需要產(chǎn)生STATn,而且T0可能不等于T1或Tn,STAT的狀態(tài)也各不相同。


                              圖7 數(shù)字IO信號(hào)的狀態(tài)

    這里選用BF561的看門狗定時(shí)器(Watchdog Timer)來實(shí)現(xiàn)。在看門狗定時(shí)器的操作中,先將計(jì)數(shù)值寫入寄存器WDOG_CNT中,然后看門狗定時(shí)器自動(dòng)將WDOG_CNT的值寫入寄存器WDOG_STAT。接著通過寄存器WDOG_CTL使能Watchdog Timer,看門狗定時(shí)器開始計(jì)數(shù),逐次減小WDOG_STAT的值,直至為0,這時(shí)預(yù)先編寫的程序事件就會(huì)發(fā)生。要想輸出一個(gè)8bit的數(shù)據(jù),只需往某地址單元寫數(shù),對(duì)應(yīng)的數(shù)據(jù)線就會(huì)寫出該數(shù)據(jù)。為了把該數(shù)據(jù)保持一段時(shí)間(Tx的長(zhǎng)度),還需使用鎖存器將該數(shù)據(jù)鎖住。所以在BF561的DSP程序中先定義了數(shù)字IO信號(hào)對(duì)應(yīng)的中斷事件,且中斷優(yōu)先級(jí)較高,這是為了保證定時(shí)的精確度,防止別的事件干擾。

            register_handler(ik_ivg9, DIO_WDOGA_ISR);

       然后在中斷事件里,把當(dāng)前要寫入的數(shù)據(jù)寫到某地址單元上,然后使能Watchdog Timer,再將定時(shí)器的值寫入WDOG_CNT中。定時(shí)器的計(jì)數(shù)是以sclk為基準(zhǔn)的,程序代碼如下:

*pDIO_Data_Port  = codes;

         *pWDOGA_CTL  =DISABLE_WDOG; 

            *pWDOGA_CTL  |=WDOG_EXPIRED_BIT;       

            *pWDOGA_CNT  =times;  

            *pWDOGA_CTL  = ENABLE_GPI;   

        codes和times就是當(dāng)前要產(chǎn)生的數(shù)字IO的編碼和長(zhǎng)度。由于是一系列編碼,可以用數(shù)組索引的形式,將當(dāng)前的值寫入。而我們事先定義DIO_Data_Port的地址為0x24000000,這對(duì)應(yīng)BF561的AMS1的地址空間,所以用AMS1作為鎖存器的使能信號(hào),將數(shù)據(jù)線上的數(shù)據(jù)通過鎖存器以后再輸出,如下圖所示 

       
                                       圖8   數(shù)字IO的鎖存器

6.標(biāo)準(zhǔn)RS232接口

    為了讓控制系統(tǒng)與計(jì)算機(jī)之間可以進(jìn)行數(shù)據(jù)的相互傳遞,系統(tǒng)采用MAX3232芯片來實(shí)現(xiàn),如圖9所示:

                       圖9   BF561與計(jì)算機(jī)之間的串口通信框圖

    BF561的UART遵循異步串行通信協(xié)議,包括:5-8個(gè)數(shù)據(jù)位;1、11/2、2個(gè)停止位;有/無奇偶檢驗(yàn)。而波特率滿足

         
    其中,SCLK是DSP系統(tǒng)的時(shí)鐘頻率,Divisor的值介于1~65536,可以由timer寄存器相應(yīng)的值得到,滿足關(guān)系式 

           
    在BF561的初始化設(shè)置中,將UART設(shè)為8bit數(shù)據(jù)模式,同時(shí)將Timer2設(shè)置為WDTH_CAP模式,用Timer2去捕獲串口的數(shù)據(jù)變化率,而Timer2位于TMRS8寄存器里,程序初始化代碼如下:

*pUART_LCR = WLS(8);

       *pUART_MCR = LOOP_ENA;       

       *pTMRS8_DISABLE = TIMDIS2;

       *pTMRS8_STATUS = TRUN2 | TOVL_ERR2 | TIMIL2;

       *pTIMER2_CONFIG = TIN_SEL | IRQ_ENA | PERIOD_CNT | WDTH_CAP;

       *pTMRS8_ENABLE = TIMEN2;

       *pUART_GCTL = UCEN;

    在程序一開始,就會(huì)按照初始化設(shè)置進(jìn)行自動(dòng)波特率檢測(cè)。當(dāng)有字符輸入時(shí),timer會(huì)測(cè)量連續(xù)2次下降沿的寬度,并返回到timer所對(duì)應(yīng)的period寄存器里。比如說,如果發(fā)送”@”(0x40h)作為自動(dòng)波特率檢測(cè),發(fā)送時(shí)包括起始位,總共為8bit,如圖10所示。


           圖10  自動(dòng)波特率檢測(cè)字符”@”(0x40h)

    此處period的大小如上圖所示,捕獲的UART bits為8位,所以得到

     
    再根據(jù)波特率的公式,就可以求得波特率的大小。此段程序代碼如下:

Period = *pTIMER2_PERIOD;  //返回period的值

Divisor = Period >> 7;         //右移7bit就相當(dāng)于除以16×8

BaudRate = SYSCLK/16/divisor;  //得到波特率 

 
結(jié)論

    整個(gè)控制系統(tǒng)是以LCD顯示的界面為基礎(chǔ),按提示進(jìn)行相應(yīng)的鍵盤操作。經(jīng)過測(cè)試,該系統(tǒng)各部分工作正常,無相互干擾現(xiàn)象。實(shí)時(shí)時(shí)鐘定時(shí)精確,可以達(dá)到秒級(jí)。數(shù)字IO輸出的波形編碼無亂碼,定時(shí)精度可達(dá)毫秒級(jí)。RS232接口傳輸數(shù)據(jù)時(shí),以高達(dá)115200bit/s的波特率傳輸,誤碼率小于5%。該控制系統(tǒng)已成功應(yīng)用于某雷達(dá)系統(tǒng)的控制子系統(tǒng)。

本站聲明: 本文章由作者或相關(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日 /美通社/ -- 英國(guó)汽車技術(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ì)日本游戲市場(chǎng)的投資。

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

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

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

8月28日消息,在2024中國(guó)國(guó)際大數(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íng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

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

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

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

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

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