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