0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

EPSON MCU和μC/OS-II實現(xiàn)短信息電話機的通信系統(tǒng)設(shè)計

電子設(shè)計 ? 來源:東南大學 ? 作者:何璐坪,謝吉畢 ? 2020-09-30 10:01 ? 次閱讀

將μC/OS-II實時嵌入式操作系統(tǒng)移植到EPSON八位單片機上來開發(fā)短信息電話機。此電話機除普通電話的通用功能外,還增加了短消息收/發(fā)功能、信息瀏覽與查閱功能、信息點播與信息訂閱功能等。

1 背 景

Short Messages Phone(短信息電話機)是一種操作簡便、成本低廉的固定電話信息終端產(chǎn)品。它集成了網(wǎng)絡(luò)智能電話的優(yōu)點,是一種基于信息網(wǎng)絡(luò)的,具有交互功能的信息終端產(chǎn)品,可以通過固定電話網(wǎng)絡(luò)與信息中心進行數(shù)據(jù)雙向傳送。

2 系統(tǒng)功能及其實現(xiàn)方案

2.1 功能特點

短信息電話機除了實現(xiàn)普通電話機的通用功能外,還增加了短消息收/發(fā)、信息瀏覽與查閱、信息點播、信息訂閱、電話簿、來電號碼顯示與存儲、通話記錄、來電轉(zhuǎn)移、呼叫等待、呼叫限制、對屏幕的灰度進行設(shè)置、對回執(zhí)進行設(shè)置以及時鐘和日歷功能、鬧鐘功能、特色鈴聲功能、記事本功能等。

短信息電話機還可以和信息中心在線交互,查看信息中心提供的信息(例如天氣預(yù)報、電視預(yù)告、電影預(yù)告、股價查詢、話費查詢、區(qū)號郵編查詢、新聞欄目、彩票信息等等),還可以訂閱一些自己喜歡的信息。在線瀏覽的信息取決于信息中心提供的信息。

短信息電話機就像是一個固定的手機。手機的功能幾乎它都具備。

2.2 硬件方案

(1)MCU的選擇

MCU是整個方案的核心,由它來處理CPE(客戶端設(shè)備)與IIS(集成信息系統(tǒng)),控制整個電話機的各個功能部件。由于人機界面對速度的要求不是很高,數(shù)據(jù)通信速度也相對較低,一般的8位MCU就能夠滿足方案的要求。我們選擇EPSON 的EOC88系列的E0C88104芯片。

(2)數(shù)據(jù)信號的解/編碼

① FSK信號的解碼。FSK(頻移鍵控)的解碼選用臺灣華邦公司的W91030。它是用同步串口與MCU連接的,不僅能提供FSK的解碼,而且還能提供CAS信號的檢測(CAS信號是IIS與CPE連接時下傳的一個很重要的握手信號)和振鈴檢測,是一款很實用的芯片,但它的成本較高。如果用分離器件,也能做到FSK解碼,但這樣做沒有經(jīng)過驗證,風險較大。

② DTMF信號的解碼。選用的是9170,這一款芯片是很通用的。

③ DTMF信號的編碼。選用的是臺灣華邦公司的W91082,同樣是以同步串口與MCU相連接。

④ FSK的編碼。FSK信號的編碼不是必需的,考慮到FSK傳送的效率要比DTMF高20“28倍,當然最好選用FSK上傳方式。由于相應(yīng)的FSK的編碼器件價位很高,本方案采用了低成本的軟件方式作為后備模塊。

(3)語音電路

目前選用的是Philips公司的TEA1098。該器件集成了普通話音放大、消側(cè)音及免提功能,實用方便,但價位有點高。考慮到我們初次接觸電話電路,而且這部分也不是關(guān)鍵技術(shù),為了縮短研發(fā)周期,選擇這款芯片是比較合適的。

2.3 軟件方案

本系統(tǒng)選用μC/OS-II操作系統(tǒng),將其移植到所選的MCU上。在main中建立一個起始任務(wù)

基于EPSON八位單片機和μC/OS-II實現(xiàn)短信息電話機的通信系統(tǒng)設(shè)計

然后,用OSTaskCreate()函數(shù)建立6個任務(wù)。任務(wù)名分別為:HandsetTask(摘/掛機任務(wù))、RingTask(響鈴任務(wù))、KeyTask(鍵盤任務(wù))、SmTask(短消息任務(wù))、UITask(用戶界面(UI)任務(wù))、ClockTask(時鐘任務(wù))。最后,在起始任務(wù)中將它本身刪除掉。

(1)摘/掛機任務(wù)

當拿起聽筒或放下聽筒時,就產(chǎn)生中斷。在中斷中,調(diào)用OSMboxPost(Mbox_Int_Hook,Msg_Int_Hook)來喚醒摘/掛機任務(wù),同時清除中斷標志。Msg_Int_Hook[0]=0x00為摘機,Msg_Int_Hook[0]=0x01為掛機。

摘/掛機任務(wù)不斷調(diào)用OSMboxPend(Mbox _Int_Hook,0,%26;amp;err)來獲得信箱。獲得信箱后,根據(jù)Msg_Int_Hook[0]中的值,就知道是摘機還是掛機,然后調(diào)用OSMboxPost(Mbox_Any_UI,Msg_Any_UI)來喚醒UI任務(wù)。Msg_Any_UI [0]=任務(wù)號1,Msg_Any_UI =0x00為摘機,Msg_Any_UI =0x01為掛機。

在掛機的時候,如果先前是在響鈴的時候摘機的,那么UI任務(wù)把它當做已接來電處理;如果不是在響鈴的時候摘機的,那么在掛機的時候把它當做已撥電話處理。

(2)振鈴任務(wù)

當鈴聲來到時,就產(chǎn)生中斷。在這個中斷中,調(diào)用OSSemPost(Sem_Int_Ring)來喚醒振鈴任務(wù)。

響鈴任務(wù)調(diào)用OSSemPend(Sem_Int_Ring,0,%26;amp;err)來獲得信號量。獲得信號量后,就把下傳的號碼接收下來;根據(jù)號碼就可以知道是短信息,還是普通電話。

① 當是短信息時,就調(diào)用OSSemPost(Sem_Any _SMTask)來喚醒短消息任務(wù);

② 如果是電話,就響鈴,同時調(diào)用OSMboxPost(Mbox_Any_UI,Msg_Any_UI)來喚醒UI任務(wù)。這時Msg_Any_UI[0]=任務(wù)號2,從Msg_Any_UI開始存的是來電時間和電話號碼,然后調(diào)用OSSemPend(Sem_Int_Ring,RING_RECV_TIMEOUT,%26;amp;err),來延時響鈴一段時間。

如果在這段時間內(nèi)沒有接電話,那么必然會超時,于是就清除鈴聲中斷,同時調(diào)用OSMboxPost(Mbox_Any_UI,Msg_Any_UI)來喚醒UI任務(wù),這時Msg_Any_UI[0]=任務(wù)號2,Msg_Any_UI=0xff表示鈴聲結(jié)束。UI任務(wù)把它當作未接來電處理。

如果在這段時間內(nèi)接電話,就必然喚醒摘/掛機任務(wù)。如果從響鈴到對摘/掛機任務(wù)處理完畢所需要的總時間還沒有到RING_RECV_TIMEOUT,那么,當時間到了,UI任務(wù)也會收到鈴聲結(jié)束的消息;但此時,UI任務(wù)不對它做任何處理。

響鈴任務(wù)如何區(qū)別是正常的電話還是信息中心的來電信息呢?其實很簡單。信息中心也是一個終端,是由一個特定的號碼來確定的。就像用不同的電話號碼來區(qū)別不同的用戶一樣。這樣響鈴任務(wù)就可以根據(jù)電話線上下傳的號碼,來確定是哪種情況了。

(3)鍵盤任務(wù)

有按鍵按下時,產(chǎn)生一中斷,在中斷服務(wù)子程序中調(diào)用OSSemPost(Sem_Int_Keyboard)來喚醒鍵盤任務(wù),同時清除中斷標志。鍵盤任務(wù)調(diào)用OSSemPend(Sem_Int_Keyboard,0,%26;amp;err)來獲得信號量。獲得信號量后,鍵盤任務(wù)將調(diào)用OSMboxPost(Mbox_Any_UI,Msg_Any_UI)喚醒UI任務(wù)。

Msg_Any_UI[0]為任務(wù)號3, Msg_Any_UI為鍵值。

(4)短消息任務(wù)

該任務(wù)調(diào)用OSSemPend(Sem_Any_SMTask,0,%26;amp;err)獲得信號量。當獲得信號量后,通過標志位判別是準備上傳數(shù)據(jù)還是下傳數(shù)據(jù)。

① 下傳數(shù)據(jù)時,將下傳的數(shù)據(jù)放在recv_buf[]中,然后調(diào)用OSMboxPost(Mbox_Any_UI,Msg_Any_UI)喚醒UI任務(wù)。Msg_Any_UI [0]=任務(wù)號4,從Msg_Any_UI 開始存的是從recv_buf[]中篩選過的數(shù)據(jù)。這是在連上后從信息中心下載信息的情況,其中Msg_Any_UI 存的是信息的種類號,種類號都是大于0x80H小于0xFFH的;沒有連上信息中心或者是連上之后完成任務(wù)。這時recv_buf存的就是0xff;如果剛剛連上,就在recv_buf存0x01。

② 如果用戶需要發(fā)送短消息任務(wù),先將信息存在Msg_send_buf[]中,然后UI任務(wù)調(diào)用OSSemPost(Sem_Any_SMTask),將該任務(wù)激活。該任務(wù)提取存在Msg_send_buf[]中的信息后,包裝后保存在send_buf[],然后將其發(fā)出去。

(5)用戶界面任務(wù)

UI任務(wù)一直在等待消息。當它被激活時,根據(jù)存在Msg_Any_UI[255]中的不同數(shù)據(jù)進行不同的處理。詳述見“3.用戶界面任務(wù)詳述”。

(6)時鐘任務(wù)

單片機每10ms產(chǎn)生一個中斷,在這個中斷服務(wù)子程序中,對clock_count減1。當減為0時,就調(diào)用OSSemPost(Sem_Int_ClockTask)喚醒時鐘任務(wù);同時,clock_count重新回到100。這樣每1s,就會調(diào)用一次OSSemPost(Sem_Int_ClockTask)。時鐘任務(wù)調(diào)用OSSemPend(Sem_Int_ClockTask,0,%26;amp;err)獲得信號量。當獲得信號量時,就更新時間。如果在23:59:59的時候更新時間,那就要同時更新日期和星期。如果此時UI任務(wù)處于待機狀態(tài),時鐘任務(wù)就調(diào)用OSMboxPost(Mbox_Any_UI,Msg_Any_UI)來喚醒UI任務(wù)。Msg_Any_UI[0]為任務(wù)號0x06。時鐘任務(wù)只是負責更新時間,顯示時間是由UI任務(wù)在待機的時候來完成的。

3 用戶界面任務(wù)詳述

在所有這些任務(wù)中,用戶界面任務(wù)做的工作相對比較煩瑣。首先,根據(jù)放在Msg_Any_UI[255]中的第一個字節(jié),判斷是什么任務(wù)激活了本任務(wù)。

① 如果是摘/掛機任務(wù)激活的,再判斷第二個字節(jié)的值,根據(jù)值的不同知道是掛機還是摘機。如果是掛機,就在液晶上顯示待機畫面。如果是摘機,就在液晶上顯示打電話圖標和有關(guān)的字樣,并等待鍵盤任務(wù)送來的數(shù)字鍵,將其顯示出來。(只有主動向外打電話才顯示數(shù)字鍵,在接電話按數(shù)字鍵轉(zhuǎn)接時不顯示數(shù)字鍵。)

② 如果是振鈴任務(wù)激活的,就將Msg_Any_UI[255]中接下來的來電號碼、時間和來電圖標顯示在液晶上。

③ 如果是鍵盤任務(wù)激活的,就根據(jù)3號任務(wù)放在Msg_Any_UI[255]中的鍵值和當前的工作模式做不同的處理。

如果是在摘機模式下,就只是響應(yīng)數(shù)字鍵和#*鍵,并每按一個鍵就通過5號任務(wù)號碼發(fā)出去。

如果是在掛機模式下,那么,就可以響應(yīng)數(shù)字鍵和有關(guān)操作菜單的鍵(包括進入各個子菜單的快捷鍵、上下鍵、左右鍵、返回上級菜單鍵、快速返回待機畫面的鍵、確定鍵、刪除鍵、拼音輸入法/字母輸入法/數(shù)字輸入法/短語輸入法切換鍵)。各個菜單是不同的狀態(tài),通過鍵值和原來的狀態(tài)可以知道現(xiàn)在該進入什么狀態(tài)。然后根據(jù)新得到的狀態(tài),進行相應(yīng)的液晶刷新和完成相應(yīng)的功能。比如添加、刪除、查找電話簿;添加、刪除、查找通話記錄;編輯短消息并發(fā)送出去,刪除草稿箱里的短消息;寫記事本,設(shè)置鬧鐘、時間、日期,設(shè)置信箱的密碼,設(shè)置信息中心的號碼等。

如果是在與信息中心的連接模式下,那么就可以響應(yīng)上下鍵,確定鍵(進入下級菜單),返回上一級菜單,通過選擇返回這個選項來實現(xiàn)。

④如果是短消息任務(wù)激活的,就根據(jù)Msg_ Any_UI[255]中的命令碼,來確定該信息的模塊種類是信息下載管理模塊、信息上傳管理模塊、信息詢問管理模塊,或者是屏幕信息輸出管理模塊,然后,再根據(jù)Msg_Any_UI[255]中接下來的信息做相應(yīng)的處理。

⑤ 如果是時鐘任務(wù)激活的,UI任務(wù)就刷新界面上的時間、日期和星期這些信息。

4 調(diào)試環(huán)境與調(diào)試成果

此程序用EPSON公司的S1C88 C-Compiler編譯器編譯,用EPSON公司的ICE88UR 的E0C88系列在線仿真器進行仿真。在仿真器下仿真完畢后,再脫機運行。試驗結(jié)果令人滿意,達到了預(yù)期的效果。

責任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6026

    文章

    44455

    瀏覽量

    630942
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16802

    瀏覽量

    349370
  • 嵌入式
    +關(guān)注

    關(guān)注

    5052

    文章

    18916

    瀏覽量

    300816
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6609

    瀏覽量

    123029
  • μC
    μC
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    62728
收藏 人收藏

    評論

    相關(guān)推薦

    使用μCOS-Ⅱ操作系統(tǒng)短信電話機

    使用μCOS-Ⅱ操作系統(tǒng)短信電話機
    發(fā)表于 04-22 13:05

    【圖書分享】嵌入式實時操作系統(tǒng)μC/OS-II經(jīng)典實例

    《嵌入式實時操作系統(tǒng)μC/OS-II經(jīng)典實例:基于STM32處理器》作  者:劉波文 等編著 內(nèi)容簡介 本書緊緊圍繞μC/OS-II
    發(fā)表于 03-13 10:26

    μC/OS-II是什么?μC/OS-II有哪些應(yīng)用?

    μC/OS-II的原理是什么?如何去改進μC/OS-II的調(diào)度算法?μC/OS-II有哪些應(yīng)用?
    發(fā)表于 04-26 07:17

    如何實現(xiàn)μC/OS-II系統(tǒng)的移植?

    如何實現(xiàn)μC/OS-II系統(tǒng)的移植?
    發(fā)表于 04-28 06:01

    怎么實現(xiàn)基于CDMA短信息的無線通信系統(tǒng)的設(shè)計?

    怎么實現(xiàn)基于CDMA短信息的無線通信系統(tǒng)的設(shè)計?
    發(fā)表于 05-31 06:21

    基于μC/OS-II的嵌入式音頻系統(tǒng)設(shè)計

    基于μC/OS-II的嵌入式音頻系統(tǒng)設(shè)計 Design of Embedded Audio Frequency System Based on μC/
    發(fā)表于 03-16 11:10 ?19次下載

    EPA 通信協(xié)議在μC/OS-II嵌入式系統(tǒng)中的設(shè)計與實現(xiàn)

    本文提出了一種基于μC/OS-II 嵌入式系統(tǒng)的EPA 通信協(xié)議的實現(xiàn)方案。簡要介紹了 EPA
    發(fā)表于 05-25 15:02 ?18次下載

    基于嵌入式系統(tǒng)μC/OS-II的雙CAN通信構(gòu)件

    在將嵌入式實時操作系統(tǒng)μC/OS-II成功移植到MB90F543單片機的基礎(chǔ)上,論文介紹了將雙CAN通信程序模塊作為一個構(gòu)件嵌入到μC/
    發(fā)表于 08-12 17:28 ?27次下載

    輕型PPP協(xié)議在μC/OS-II操作系統(tǒng)中的實現(xiàn)

    針對實時操作系統(tǒng)μC/OS-II 沒有自己的網(wǎng)絡(luò)協(xié)議棧,提出了基于ARM7TDMI 處理器的μC/OS-II 操作
    發(fā)表于 08-13 09:05 ?15次下載

    μC/OS-II在PC機上移植的設(shè)計與實現(xiàn)

    本文介紹了μC/OS-II移植到PC機上的過程,使μC/OS-II應(yīng)用系統(tǒng)程序在PC機上脫離DOS或Windows環(huán)境運行。著重介紹了Boo
    發(fā)表于 09-02 08:51 ?14次下載

    基于ADSI協(xié)議的固定電話短信息系統(tǒng)

     研究了固定電話短信息業(yè)務(wù)服務(wù)器系統(tǒng),采用計算機與CTI技術(shù)相結(jié)合的方法,按照標準的ADSI協(xié)議,實現(xiàn)中英文短信息的發(fā)送功能。 &
    發(fā)表于 05-10 13:18 ?1277次閱讀
    基于ADSI協(xié)議的固定<b class='flag-5'>電話</b><b class='flag-5'>短信息系統(tǒng)</b>

    使用μC/OS-II操作系統(tǒng)短信息電話機

    將μC/OS-II實時嵌入式操作系統(tǒng)移植到EPSON八位單片機上來開發(fā)短信息電話機。此
    發(fā)表于 06-16 11:20 ?465次閱讀

    μC/OS-II在EP7312上的移植

    μC/OS-II在EP7312上的移植首先介紹μC/OS-II操作系統(tǒng)的特點,重點分析μC/
    發(fā)表于 06-16 11:24 ?1119次閱讀
    μ<b class='flag-5'>C</b>/<b class='flag-5'>OS-II</b>在EP7312上的移植

    基于CDMA短信息的無線通信系統(tǒng)實現(xiàn)

    基于CDMA短信息的無線通信系統(tǒng)實現(xiàn) 近年來,基于gsm模塊的短信收發(fā)功能的各種應(yīng)用系統(tǒng)如:
    發(fā)表于 12-14 14:16 ?452次閱讀
    基于CDMA<b class='flag-5'>短信息</b>的無線<b class='flag-5'>通信</b><b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>實現(xiàn)</b>

    基于80C31的短信息終端電話開發(fā)

      現(xiàn)在,短信息服務(wù)日益普及。各個電話機廠家競相設(shè)計和開發(fā)短信息終端電話。為配合我所開發(fā)的短信息終端專用集成芯片,我們設(shè)計開發(fā)出了可發(fā)送和接
    發(fā)表于 11-08 10:33 ?1611次閱讀
    基于80<b class='flag-5'>C</b>31的<b class='flag-5'>短信息</b>終端<b class='flag-5'>電話</b>開發(fā)