《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于μPD78045F單片機的軟件UART
基于μPD78045F單片機的軟件UART
摘要: 本文給出在μPD78045F上采用軟件模擬方式,使用2個I/O口線和一個8位定時器實現(xiàn)異步串行UART功能的方法。本方法占用資源少,設置和使用簡單方便,幀格式可自由改變。
Abstract:
Key words :

       引  言

       單片機在數(shù)據采集與控制、智能儀表中發(fā)揮重要的作用。單片機應用系統(tǒng)與后端上位機系統(tǒng)之間通訊進行數(shù)據交換,構成功能強大的測控系統(tǒng)是目前發(fā)展的趨勢。

       NEC公司生產的μPD78045F是78K0系列8位單片機功能較強的044F子系列的最高型號。該芯片功能強、可靠性高、速度快、支持節(jié)電應用。美中不足的是,該芯片的2個串行I/O口雖然功能強,卻只支持同步通訊,沒有異步通訊功能。

       本文給出在μPD78045F上采用軟件模擬方式,使用2個I/O口線和一個8位定時器實現(xiàn)異步串行UART功能的方法。本方法占用資源少,設置和使用簡單方便,幀格式可自由改變。

       設計思路

    &nb

 

sp;  每一個UART都應具備如下功能:

       異步串行發(fā)送和接收的基本單位是幀,通常每幀包括以下部分:

       本設計中,發(fā)送采用主動查詢方式,可使用任一輸出端口,本文中將P12.1設置為輸出口,作為TxD;由于異步通訊中接收是被動的和隨機的,因此只能采用中斷方式,P0.1是外部中斷INTP1的外部引腳,設計中使用它作為RxD,設置為下降沿觸發(fā)方式,可及時檢測到起始位的邏輯0電平,進入中斷處理程序進行數(shù)據接收。

       波特率發(fā)生器使用8位定時器TM1,產生指定波特率下的1個發(fā)送/接收位時序長度,即“位定時”。UART的并行數(shù)據到串行數(shù)據的轉換、每幀數(shù)據格式的生成、發(fā)送和接收功能都由軟件來控制完成。在指定波特率下,位定時為1,000,000ms / 波特率,硬件系統(tǒng)采用fx=4.9152 MHz的主晶振,軟件設置定時器計數(shù)時鐘為4分頻,即:fx/4=1.2288 MHz  ,達到指定波特率位定時常數(shù)為:1228800 / 波特率 。常用的波特率對應的位定時常數(shù)列在表1中。

常用的波特率對應的位定時常數(shù)


       以下設置通訊參數(shù)為9600波特率,1位起始位,6位數(shù)據位,發(fā)送順序從MSB到LSB,偶校驗,2位停止位。

 

 

軟件初始化的C語言程序

發(fā)送過程流程圖

                                                                 圖1 發(fā)送過程流程圖

接收過程流程圖

                                                            圖2 接收過程流程圖

       軟件流程 

       發(fā)送

      
發(fā)送過程采用主動查詢方式完成,為保證每個發(fā)送位的時長相同,整個過程關閉中斷。首先,設定定時器定時一位時長,啟動定時器,關閉中斷,開始一幀的發(fā)送;然后,在發(fā)送一位時長的低電平(起始位)后,按最高位在先的順序依次發(fā)送6個數(shù)據位,同時計算偶校驗位,并在數(shù)據位后發(fā)送;最后,發(fā)送2位時長高電平作為停止位,結束一幀的發(fā)送。關閉定時器,開放中斷,發(fā)送過程結束。發(fā)送流程見圖1。

       接收

      
接收過程是在中斷處理程序中完成的。中斷是由下降沿觸發(fā)的,進入中斷的時刻是處在接收起始位的時段。為了保證接收準確,在檢測到起始位后,不能在每一位時長的開始而應在其中間進行采樣。進入中斷程序后,首先通過設定定時器,等待一位半時長,跳過整個起始位和半時長的首個數(shù)據位,然后開始按最高位在先的協(xié)議接收六個時長的數(shù)據位,每接收一位進行串并轉換和校驗位計算;隨后接收校驗位并與計算機結果比較,確定是否接收

 

正確。出于簡化程序,校驗位接收完畢后,沒有讀取停止位。最后關閉定時器,結束接收過程,中斷返回。

       在μPD78045F的中斷系統(tǒng)中,高優(yōu)先級中斷的響應時間最長32個CPU時鐘,這些時延應在程序中進行補償,尤其在高速率通訊時位定時時長很短,補償尤為重要。補償?shù)姆椒ㄊ菑奈欢〞r中減去最長時延32個時鐘。在9600波特率、定時器 4分頻計數(shù)情況下,應減去 32/4=8個定時器計數(shù)。接收中斷處理流程見圖2。

       結語

      
本文介紹的軟件UART實現(xiàn)方法,已在項目中實際應用,達到功能要求,工作穩(wěn)定可靠。從以上方案可以看出,本方法的最高波特率可達38400,每一幀的格式可靈活改變,其中數(shù)據位長度和發(fā)送順序均沒有限制,可根據需要發(fā)送數(shù)十位的數(shù)據位。

       使用本方法應具備以下條件:

       本方法占用外部連線少,穩(wěn)定可靠,使用方便,簡單有效,由于其幀格式的巨大靈活性,是在低成本、中速率、特殊數(shù)據傳輸場合下的一個較好選擇。


參考文獻:
1.        NEC Corporation,‘μPD78045F SUBSERIES USER'S MANUAL’,1996 

此內容為AET網站原創(chuàng),未經授權禁止轉載。
主站蜘蛛池模板: 天天爽夜夜爽人人爽一区二区| 樱桃视频影院在线播放| 国产在线2021| 999国产精品999久久久久久| 无码精品A∨在线观看无广告| 亚洲国产欧美日韩精品一区二区三区| 精品无码国产自产拍在线观看| 国产日产欧洲无码视频| 99国产精品99久久久久久| 无码精品国产一区二区三区免费| 亚洲国产成人久久综合区| 男人桶女人的肌肌30分| 国产九九久久99精品影院| 美女网站在线观看视频免费的| 女人被免费视频网站| 久久久久久久久久久福利| 欧美一级高清片免费一级| 伊人久久无码中文字幕| 老头天天吃我奶躁我的视频| 国产成人青青热久免费精品| 91精品国产免费久久国语麻豆| 岳的大白屁股光溜溜| 久久国产免费一区二区三区| 欧美国产日韩A在线观看| 人妻中文字幕乱人伦在线| 老司机aⅴ在线精品导航| 国产成人亚洲综合| 16女性下面扒开无遮挡免费| 天堂资源中文在线| 两个人看的www视频日本| 日本韩国一区二区| 亚洲制服丝袜中文字幕| 清超市欲目录大团结| 十七岁高清在线观看| 色综合久久久久久久久五月| 国产欧美一区二区精品久久久 | 日本换爱交换乱理伦片| 亚洲av永久无码精品天堂久久 | 波多野结衣教师中文字幕| 再深点灬舒服灬太大了网站| 色综合色综合久久综合频道|