智能電話終端設(shè)計
介紹一種智能電話終端系統(tǒng)的設(shè)計與實現(xiàn)。系統(tǒng)以微處理器為控制中心,可實現(xiàn)終端功能設(shè)置、信息輸入,通過調(diào)制解調(diào)器進行信息接收與發(fā)送的控制,以及信息的顯示及存儲等功能。
關(guān)鍵詞:智能電話;調(diào)制解調(diào)器;信息處理
and Technology, Shanghai 200093, China)
系統(tǒng)框圖見圖1。該系統(tǒng)的核心是主控模塊,主要由微處理器構(gòu)成,控制整個系統(tǒng)軟硬件的運行。一方面處理各部分外圍電路的控制信息,另一方面完成接收和需要發(fā)送的信息的智能化處理,其功能具備可擴展性,為以后功能進一步加強保留軟件接口;存儲模塊包括外部RAM、EPROM存儲器和相應的掉電保護電路,用于存放系統(tǒng)運行中需要處理、交換的數(shù)據(jù),同時還用于存儲接收到的或需要發(fā)送的數(shù)據(jù)信息;EPROM主要用于存放系統(tǒng)軟件及存放漢字字庫;鍵盤輸入模塊用于接收來自用戶的輸入數(shù)據(jù),包括控制信息和數(shù)據(jù)信息,它是用戶對該系統(tǒng)的輸入接口;LCD模塊由LCD顯示器及相關(guān)控制電路組成,可以顯示中文、英文、數(shù)字和各類字符,它是該系統(tǒng)對用戶的輸出接口。MODEM模塊由一片嵌入式MODEM芯片及相關(guān)外圍電路組成。一方面用于調(diào)制由主控模塊送來的數(shù)據(jù),將數(shù)字信息轉(zhuǎn)化為模擬信號,送入前端電話接口模塊DAA電路;另一方面將DAA電路接收的模擬信號轉(zhuǎn)化為數(shù)字信號,并交給主控模塊進一步處理。它是所有信息的進出口,起著至關(guān)重要的作用。
(1)物理層負責各實體之間物理的數(shù)據(jù)位流的傳送。此系統(tǒng)中應用Z02215 MODEM芯片作為數(shù)據(jù)收發(fā)的調(diào)制解調(diào)器,該芯片功能強大,因此外圍電路極為簡單。Z02215是Zilog公司新開發(fā)的單片嵌入式MODEM芯片,它帶有集成的控制器,數(shù)據(jù)泵和模擬前端,在公共交換電話網(wǎng)(PSTN)上運行,Z02215適用V.22bis,V.22,V.23(Ninitel),V.21,Bell 212A,Bell 202,Bell 202T和Bell 103等MODEM標準[1]、[2]。Z02215提供全面的、可選擇的和可編程的語音產(chǎn)生和檢測。完全滿足物理層數(shù)據(jù)傳輸?shù)挠布蟆?br /> (2)鏈路層將提供一個可靠的數(shù)據(jù)傳輸機制[3]。要實現(xiàn)的功能包括:電話語音通路和消息通信通路的建立、來電顯示、消息發(fā)送時的打包、接收數(shù)據(jù)時的解包功能、數(shù)據(jù)校驗、重發(fā)控制等。下面是為保證數(shù)據(jù)被可靠地發(fā)送和接收所建立的數(shù)據(jù)包格式及通信協(xié)議。
幀格式:字間隔+起始位+數(shù)據(jù)(8位,先發(fā)送低位后發(fā)送高位)+奇校驗
字間隔:≥2bit,固定為1;起始位:1個bit,固定為0;數(shù)據(jù):1個byte(8個bits);奇校驗:1個bit。
包格式:數(shù)據(jù)(16bytes)+序列號(1byte)+校驗(1byte)。
數(shù)據(jù):如果數(shù)據(jù)長度不足16個bytes,則用0x20補齊;序列號:采用連續(xù)累加的方式,從1~255,不能為0;校驗位:所有數(shù)據(jù)和序列號相加(不包括校驗本身)再求補;接收方檢查校驗位;如果所有的數(shù)據(jù)相加等于0(包括校驗位)則校驗正確。
包的確認信息格式(1字節(jié)):
FFH:正確接收,作為確認信號;00H:錯誤接收,作為重發(fā)信號。
采用半雙工的傳輸方式,上行下行均使用1200bps。另外,為保證數(shù)據(jù)的可靠傳輸,在每次發(fā)送數(shù)據(jù)包之前,最少發(fā)送10ms的1,作為同步碼。
(3)消息層,規(guī)定了消息及命令的格式及確認信息的格式。上層下發(fā)的數(shù)據(jù)為16bytes的數(shù)據(jù)包,由發(fā)送端程序負責增加序列號和校驗,由接收程序負責檢查序列號和校驗。底層程序確保所提交的數(shù)據(jù)包的正確和順序。
發(fā)送端:在發(fā)送完一個完整的數(shù)據(jù)包(總共18個bytes)后,發(fā)送端等待150ms,如果沒有接收到確認信號或收到重發(fā)信號,則將重發(fā)該數(shù)據(jù)包。如果收到確認信號則立即發(fā)送下一個數(shù)據(jù)包。
接收端:在接收到第一個有效的數(shù)據(jù)后的200ms內(nèi)若收不到一個完整的數(shù)據(jù)包,或者校驗錯誤,則接收端發(fā)出錯信息,如果接收的數(shù)據(jù)包的序列號和上一次數(shù)據(jù)包的序列號相同則拋棄這個數(shù)據(jù)包。
接收端校驗:接收端有2種校驗來確保數(shù)據(jù)的正確:一個是每個byte內(nèi)的奇校驗,用來確保單個byte的正確性;另一個是包校驗,確保整個包的完整性。
發(fā)送端重發(fā):如果按以上發(fā)送過程重復發(fā)送3次后,依然沒有接收到確認信號,則認為該次通訊失敗,向上層上報發(fā)送失敗的消息,交由上層處理。