999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DSP2812的雙緩沖串口程序設計

2011-06-02 01:33:38湖南湘潭江南機器集團有限公司林明輝
電子世界 2011年12期
關鍵詞:程序設置

湖南湘潭江南機器集團有限公司 王 剛 林明輝

引言

TMS32OF2812是國內廣大的工程技術人員非常熟悉一種DSP芯片,它速度快,功能強,廣泛應用于電機控制,電力電子等領域。如何高效可靠的實現DSP與上位PC機或其它從機間的串行通訊,是DSP系統開發的一個基本問題。本文將以DSP2812為例,針對這一問題展開討論,并給出一種切實可行的解決方案。

1.常用串口收發程序及其存在的問題

常用的串口發送程序如下所示,以DSP2812的SCIA發送一字節數據為例:

DSP每收到一個字節的數據都會進入中斷,當接收的數據量較大時,會占用較多的CPU資源,效率低。

2.FIFO控制寄存器設置和使用隊列數據結構的說明

DSP2812含有一個16級深度的發送/接收FIFO。使用FIFO可以減少收發數據的延遲和對CPU資源的占用,高效的實現串口數據收發。

FIFO是一個緩沖寄存器,通過FIFO發送數據時,可以一次性連續寫入多個數據(最多16個),DSP會自動將這些數據發送出去,無需CPU干預,還可以設置發送完成后進中斷;通過FIFO接收數據時,經由設置SCIFFRX寄存器,可以實現接收若干個字節的數據后(最多16個)進入中斷,在中斷中處理這些數據,這就減少了接受多個數據時,CPU進中斷的次數,提高了效率。

(1)如何訪問FIFO

寫發送FIFO通過SCITXBUF寄存器,讀接收FIFO通過SCIRXBUF寄存器。

(2)FIFO中斷

FIFO模式有兩個中斷,一個用于FIFO發送,一個用于FIFO接收。對于FIFO發送中斷來說,當使能FIFO,且使能TXFIFO中斷后,標準的TXINT將不再起作用,該中斷僅作為SCI FIFO發送中斷工作;對于串行接收中斷而言,RXINT中斷是SCI FIFO接收、接收錯誤和接收FIFO溢出的共同中斷。

FIFO發送和接收中斷都可以設置為匹配中斷。對FIFO發送來說,SCIFFTX寄存器中的位TXFFST4-O表明當前的發送FIFO中有多少個字節的數據,位TXFFIL4-O為用戶設定的接收FIFO中斷匹配級別,當TXFFST4-O的值小于或等于TXFFIL4-O的值時,產生發送匹配中斷;對FIFO接收來說,SCIFFRX寄存器中的位RXFIFST4-O表明當前接收FIFO中有多少個字節的數據,位RXFFIL4-O為用戶設定的發送FIFO中斷匹配級別,當RXFIFST4-O的值大于或等于RXFFIL4-O的值時,產生接收匹配中斷。

FIFO寄存器可以設置為:

在作文教學這方面,寄宿制學校不單是學生學會學習,更重要的是讓學生能夠主動學習,這種主動是自律的,不是在老師的強迫之下做的,主動發現生活的美,更重要的是讓學生通過寫作了解自己生活的環境,發展自己,升華自己,充分享受學習和收獲的喜悅,只有這樣才能更好地積累生活素材,才能進行“生活寫作”的改革和發展。

/*使能FIFO,發送FIFO空,禁用TXFIFO中斷,清除TXFIFO中斷標志,使能TXFFIVL匹配中斷,匹配值為O,即:當TXFIFO中數據為O時進入發送中斷。*/

SciaRegs.SCIFFTX.all=OxeO6O;

/*清RXFFOVF標志,使能FIFO接收,接收FIFO空,清除RXFFINT中斷標志,使能RXFFIVL匹配中斷,匹配值為16,即:FIFO中的數據大于等于16時進入發送中斷*/

SciaRegs.SCIFFRX.all=Ox6O7O;

/*禁止串口自動檢測波特率*/

SciaRegs.SCIFFCT.all=O;

程序使用隊列數據結構,可以更好的將串口程序模塊化。同時,利用隊列對串行數據再做一級緩沖,不僅保證了數據的順序,而且解除了使用FIFO最多一次寫入16個字節的限制,最多能寫入的數據個數取決于隊列緩沖區的大小,而這是由用戶定義的。只要發送隊列緩沖區中有待發送的數據,就采用中斷間歇性的進行發送。串行接收采用類似方式,接收到一定數量的數據后再通知上層程序,CPU不必頻繁進入中斷。

隊列是一種先入先出的線性表,它只允許在表的一端寫入數據,而在另一端讀取數據。它的操作一般有以下函數:

//獲取隊列中的數據,buf為指向隊列的指針,rdata為指向讀到的數據的指針

QueueRead(unsigned char *rdata,void *buf);

//向隊列中寫入數據,buf為指向隊列的指針,wdata為要寫入的數據

QueueWrite(void *buf,unsigned char wdata);

//獲取隊列中元素個數

QueueNData(void *Buf)

本文使用了兩個隊列來對串行數據進行緩沖,一個是DSP串行發送數據的隊列TxQueue,另一個是DSP串行接收數據的隊列RxQueue。各有1OO級深度。

3.串行發送

利用隊列和FIFO的串口發送程序由兩部分組成。一部分是供主程序調用的應用型函數,另一部分為中斷程序,它完成數據的發送。以下是一個應用型函數的例子,DSP2812串行發送一個字節的數據:

SciaSendChar(unsigned char sChar)函數由主函數調用,它將要發送的數據入隊。而后使能FIFO發送中斷。

在上文的FIFO設置中,已設置當TXFIFO中數據為O時進入發送中斷,由于串行通訊開始前TXFIFO中并無數據,所以一旦FIFO發送中斷打開,就立即進入該中斷程序。

串行發送中斷程序的一種寫法:

串行數據的發送是在中斷中完成的,只要發送隊列中還有數據,就會間歇性進入該中斷,中斷程序會判斷當前發送隊列還有多少個元素等待發送,若不足16個,則把數據全部寫入FIFO,若大于16個,則寫入16個,寫入FIFO的數據,DSP會自動發送出去,無需CPU的干預。當發送隊列中無數據時,則判定為發送完,關閉中斷,防止因FIFO空而反復進入該中斷。

若CPU有其他的關鍵進程需要響應,則可以把該關鍵進程的中斷優先級設置得高于串行發送中斷,這樣在發送數據時依然可以響應關鍵進程。

4.串行接收

利用FIFO的串行接收程序同樣由兩部分組成,一部分是串行接收中斷,另一部分是從串行接收隊列中取數的程序。

串行接收中斷的一種實現方法:在上文的FIFO設置中,我們令FIFO中的數據大于等于16時進入串行接收中斷,中斷程序只需要取出數據并將之存往串行接收隊列RxQueue即可。在這里有一個隱含的約定,即,串行接收的數據數量必須大于等于16字節,否則由于串行接收匹配中斷的執行條件不滿足,將導致該中斷不執行,無法處理FIFO接收的數據。

在主函數或其他中斷程序(如定時中斷)中再處理RxQueue中接收到的數據,這樣處理起來非常靈活,實際應用中可根據需要編寫程序。下面給出在主函數中處理RxQueue的一個簡單例子供參考。

總結

本文提出了一種工程上實用的DSP串行通訊的方法。該方法采用DSP的FIFO和數據隊列對串行數據進行了兩級雙向緩沖,利用中斷完成數據收發,有實時性好,可靠性高等優點,可以方便的移植到其他芯片上,有一定的通用性。該程序已在作者的一個項目中得到應用,運行穩定。

[1]TMS320x281x Serial Communications Interface(SCI)Reference Guide.TI公司,2009,7.

[2]嚴蔚敏,吳偉民編著.數據結構(C語言版)[M].2002,9.

[3]陳明計,等編著.嵌入式實時操作系統Small RTOS51原理與應用[M].2005,7.

猜你喜歡
程序設置
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
7招教你手動設置參數
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
艦船人員編制的設置與控制
主站蜘蛛池模板: 欧美亚洲国产一区| 国产一区二区三区在线精品专区| 精品久久蜜桃| 九九热精品免费视频| 99精品在线视频观看| 熟妇人妻无乱码中文字幕真矢织江| 四虎精品黑人视频| 国产幂在线无码精品| 91精品综合| 19国产精品麻豆免费观看| 毛片在线播放a| 亚洲欧洲天堂色AV| 亚洲精品成人福利在线电影| 亚洲欧洲国产成人综合不卡| 麻豆AV网站免费进入| 熟女成人国产精品视频| 日本欧美一二三区色视频| 亚洲欧美日韩动漫| 亚洲无卡视频| 欧美 国产 人人视频| 亚洲第一黄色网| 精品无码人妻一区二区| 久久77777| 日韩成人高清无码| a级毛片免费网站| 亚洲视频免费在线看| 玩两个丰满老熟女久久网| 久久人人97超碰人人澡爱香蕉| 99在线国产| 国产白浆在线| 欧美日韩国产在线播放| 91区国产福利在线观看午夜| 国产电话自拍伊人| 国产精品va| 色悠久久久久久久综合网伊人| 精品偷拍一区二区| 伊人久久综在合线亚洲91| 国产精品99在线观看| a级毛片一区二区免费视频| 久草热视频在线| 久久熟女AV| 国产在线观看高清不卡| 亚洲国产欧美目韩成人综合| 色综合综合网| 伊人久久大香线蕉综合影视| 91网红精品在线观看| 国产91精品最新在线播放| 亚洲精品自拍区在线观看| 日韩欧美色综合| 国产99在线| 国产精品欧美日本韩免费一区二区三区不卡 | 天天色综合4| 久久99国产综合精品1| 免费国产黄线在线观看| 在线精品亚洲一区二区古装| 亚洲性视频网站| 国产乱子伦手机在线| 国产精品欧美亚洲韩国日本不卡| 成年片色大黄全免费网站久久| 无码国内精品人妻少妇蜜桃视频| 亚洲全网成人资源在线观看| 国产精品手机在线观看你懂的 | 老司国产精品视频91| 中文字幕 欧美日韩| 欧美日韩激情| 天天综合色网| 亚洲无码37.| 成人中文字幕在线| 国产福利不卡视频| 亚洲首页在线观看| 精品乱码久久久久久久| 国产日本欧美亚洲精品视| 国产精品香蕉在线| 中美日韩在线网免费毛片视频| 美女视频黄频a免费高清不卡| 天天综合天天综合| 99尹人香蕉国产免费天天拍| 久草热视频在线| 亚洲天堂视频在线播放| 久久免费视频6| 国产成人一级| JIZZ亚洲国产|