主要介紹硅實驗室雙芯片形式的嵌入式Modem(ISOmodem)芯片Si2414和Si3015,以及ISOmodem在配電變壓器遠方終端單元(TTU)中的應用;重點介紹運用ISOmodem通信的硬件及軟件設計。 目前,市面上的工業Modem主要以外置為主。外置Modem具有體積大、成本高、集成不方便等缺點;而嵌入式Modem以其性能穩定、高度集成化等優點,可以方便地嵌入到各種單片機應用系統,得到廣大工業用戶的極大關注與歡迎。美國硅實驗定(Silicon Laboratories)生產的ISOmodem就是一系列的嵌入式Modem芯片。 1 ISOmodem介紹 ISOmodem采用雙芯片形式:Modem控制芯片Si2414和DAA芯片Si3015。Modem芯片Si2414是對Modem通信進行控制并提供與微控制器的通信接口;DAA芯片Si3015是將數字信號調制為模擬信號后輸出,或是將接收的模擬信號解調為數字信號。它的通信傳輸速率最高可達14.4kbps,耗電量小于85mW,且具有過流偵測與保護功能。 1.1 Si2414內部結構及功能 Si2414芯片是高度集成化的,工作電壓為3.3V,內部功能模塊如圖1所示。包括1個控制、數據泵、ROM、RAM、1個晶振、樂相環、定時器、串行接口、UART(通用異步收發器)、1個并行接口和1個DAA接口。Modem軟件永久地被存儲在片內ROM中,只有Modem設置信息(默認值除外)和其它軟件更新程序必須存儲在主機里, 然后下載到片內RAM中。 在片內,控制器提供了一些重要的功能,包括AT命令解析,DAA控制,連接序列控制,DCE(數據通信裝置)協議控制,接入檢測,并行電話摘機檢測,溢出控制,來電顯示控制和格式化,PCM(脈沖編碼調制)模式控制,振鈴檢測,DTMF(雙音多頻)控制,通話進程臨測,錯誤糾正和數據壓縮。事實上,主機和Modem之間的所有相互作用都是由控制器完成的。控制器使用“AT”指令、S-寄存器和U-寄存器來配置和控制Modem。 1.2 Si2414的接口 Si2414提供兩種與主機接口方式:串行接口和并行接口。Si2414默認的用戶接口為串行接口,當AOUT/INT引腳通過一個下拉電阻(≤10kΩ)拉至低電平且在復位的上升沿CS引腳為高電平時,Modem接口選擇為并行接口。 (1)串行接口 當選擇串口作為Si2414的用戶接口時,TXD為發送引腳,RXD為接收引腳,數據通信的流控制通過硬件實現,即通過RTS、CTS、RI、DCD引腳信號控制數據的傳送。RTS(請求發送)是終端(DTE)到Modem(DCE)的控制信號,它通知DCE可以把數據發送到DTE,低電平有效。CTS(清除發送)是DCE到DTE的控制信號,它通知DTE可以把數據發送到DCE,低電平有低。RI(振鈴指示)是指當Modem接收到遠程呼叫時,發出振鈴指示信號RI,以通知DTE有遠程呼叫。DCD(載波檢測)是指當Modem檢測到載波信號時發出DCD信號,以通知DTE線路已經建立連接,雙方可以開始進行通信。 圖1 (2)并行接口 采用并行接口方式時,主機是通過對Si2414內部的兩個寄存器讀寫實現Modem通信控制的。地址線A0=0時,指向并行接口寄存器0;A0=1時,指向并行接口寄存器1。并行接口寄存器0為發送接收寄存器,寄存器1為Modem控制及狀態寄存器。 并行接口寄存器0接收主機從并口發送過來的數據,并將從遠程Modem接收以的數據輸出到并口。與串行接口不同,在并口方式下,發送和接收數據的流控制是通過并行接口寄存器1中的RTS、CT位及RXF、TXE位實現的。表2中,RTS、CTS位同串口的INT、ESC、RTS、CTS引腳功能相同,RXF為12字節學度接收FIFO緩沖滿櫝志位;TXE為14字節深度發送FIFO緩沖區空標志武位;REM為接收FIFO緩沖區空標志位;INTM是INT中斷引腳使能位;INT為中斷標志位。 1.3 Si3015 Si3015,DAA或線-端芯片,包含ADC、DAC、控制電路和1個ISOlink接口。Si3015和其周圍的電路提供了電話線接口需要的呢功能,包括1個整流橋、摘掛機、直流終端 、交換終端、振鈴監測、回路電流/電壓監測及通話進程測、回路電流/電壓監測及通話進程監測。另外,Si3015的外部電路主要負責EMI(電磁干擾)、EMC(電磁兼容)、安全設置和振蕩操作。 2 ISOmodem在配電變壓器遠方終端單元中的應用 2.1 硬件設計 嵌入式ISOmodem系統框圖如圖2。主機,即微控制器,采用TI公司的16位高性能定點DSP芯片TMS 320LF2407A。Si2414與主機TMS320 LF2407A(簡稱2407A)連接采用并口方式,與Si3015連接通過ISOlink接口,即Si2414的C1A引腳經電容C到Si3015的C1B引腳。ISOlink是一個連接Modem芯片和DAA芯片的專用高速接口,有三個作用:首先,將控制信號和數據從Modem芯片傳輸到DAA芯片;其次,將DAA芯片縟 眰的數據和產生的狀態信號傳輸到Mdoem芯芯片;最后,在掛機的時候,從Modem芯片提供 “keep-alive”電源到DAA芯片。系統通過TIP、RING兩條線接入電話線網絡或是采用專線通信方式即直接與遠方Modem的TIP、RING相連。 Si2414與控制器的硬件接口電路原理如圖3所示。采用2407A的I/O空間與Si2414的并口相連,這樣,利用I/O空間的64K可尋址空間,既節省2407A的輸入輸出端口資源,又簡化了軟件編程。圖3中,2407A的I/O空間選通引腳IS與I/O通用端口IOPA4經一個或門連接到Si2414的片選線CS,當IOPA4=0且IS=0時,Modem芯片被穩選通,DSP就能對Modem進行操作。另外,Si2414的8根數據線D0~D7;地址線A0連接到2407A的A0;讀、寫控制線RD、WE分別連接到2407A的讀、寫使能引腳RD、Weko怕輸出引腳INT連接到2407A的外部中斷引腳XINT1.該引腳進行軟件設置后,當系統檢測到振鈴或載波信號時,將輸出一個中斷脈沖tjt位引腳RESET連接到2407A的一個I/O口IPB5,當控制器給IOPB5一個大于5ms的低脈沖時, Si2414就會產生硬件復位。C1A引腳是Si2414與Si3015連接的DAA接口,它通過一個電容到Si3015的C1B引腳,電容主要是起隔離作用。Si3015的外圍電路主要包括一個整流橋、摘掛機、直流終端、交流終端。振鈴監測、回路電流/電壓監測及通話進程監測。 2.2 軟件設計 在利用Modem通信時,首先需要對Modem初始化。Modem初始化包括通信的波特率、數據格式、通信協議、中斷、自動應答、振鈴次數的設置等。初始化后,Modem處于等待連接狀態。這時,可以由Modem進行主動撥號建立連接,也可以由對方電話進行撥號建立連接。若由對方電話撥號,則Modem接收到振鈴RING信號的振鈴次數為一次后,Modem自動摘機進行應答。接收到載波后,Modem發出一個中斷信號,DSP進入中斷,數據通信鏈路建立成功,延時幾十ms后,就可以進行數據通信了。若是由Modem進行主動撥號,則撥號后,Modem一直在等待對方的載波信號,DSP收到Modem返回CONNECT碼后,連接成功,Modem自動進入在線狀態,雙方可以開始通信。若是DSP接收到BUSY,說明線路占線,可令Modem掛斷并等待一定時間后重新連接。通信結束后,延時一段時間,DSP向Modem發送+++,掛起數據通信,進入命令狀態,再發送ATH0命令掛斷連接,最后發送ATZ命令,復位Modem。一次通信過程完成,重新初始化Modem,開始新的通信。Modem撥號通信流程如圖4.Modem自動應答流程與圖4相似,只是靠對方建立連接。程序入口采用中斷方式,一旦DSP進入中斷,連接成功,接下來的流程與撥號通信流程一樣。 下面提供對Si2414初始化的源程序。采用C語言編寫,AT命令字符都是以ASCII碼形式發送及接收的。 Ioport unsigned port0000;/*并行接口寄存器0:發送接收寄存器*/ Ioport unsigned port0001;/*并行接口寄存器1:狀態寄存器*/ #define modemport0 port0000 #defin modemport port0001 void initmodem() {*PADATDIR=*PADATDIR%26;amp;(0XFFFF-bit4);/*選通cs*/ modemport0="A"; modemport0="T"; modemport0="Z"; /*復位*/ modemport0=13;/*回車碼,命令結束*/ delay500ms(); /*延時500ms*/ modemport="A"; modemport0="T"; modemport0="; modemport0="B"; modemport0=" "3;/*1個起始位,8位數據,無校驗,1個停止位*/ modemport0="S"; modemport0="0"; modemport0="="; modemport0="1";/*設置自動應答:ATS0=1*/ modemport0=":"; modemport0="U"; modemport0=70; /*INT引腳位映射寄存器*/ modemport0=0; modemport0=0x01;/*設置載波中斷*/ modemport0="V" modemport0="0";/*以數字形式返回結果碼*/ modemport0="Q";/*允許返回結果碼*/ modemport0="0"; modemport0=13;/*回車碼,命令結束*/ modemport1=0x10;/*設置RTS有效,中斷使能*/ } 結語 嵌入式工業級Modem不僅性能穩定、誤碼率低、不易掉線、能達到較高傳輸速率,而且集成度高、外形小巧、可方便地嵌入式到各種單片機系統,節省用戶系統空間。另外,是直流低壓低電,TTL電平接口,具有并行總線和標準串行總線兩種連接方式,通過與市話或單位內部電話線相連即可實現遠程數據采集和控制功能。隨著微處理器技術的發展和嵌入式產品日趨復雜的應用需求,嵌入式Modem有廣闊的市場前景。 |