BaseBand工作原理培训讲义文档.docx
- 文档编号:25971830
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:32
- 大小:524.63KB
BaseBand工作原理培训讲义文档.docx
《BaseBand工作原理培训讲义文档.docx》由会员分享,可在线阅读,更多相关《BaseBand工作原理培训讲义文档.docx(32页珍藏版)》请在冰豆网上搜索。
BaseBand工作原理培训讲义文档
培训资料
――BaseBand工作原理
姓名
曾令江
密级
内部公开
部门
硬件部
日期
2005年2月22日
审核
(内部技术培训资料)
龙旗科技(上海)有限公司
1.硬件系统
1.1ADIAD20msp430SoftFone基带方案系列
我们目应用到的ADI基带方案组合主要有:
■AD6522(Hercules)+AD6521(Pegasus)+ADP3408(L01系列主板)
■AD6525(Athena)+AD6521(Pegasus)+ADP3522(L02M04、L04M82系列主板)
■AD6525(Athena)+AD6533(TyphoonA)(LyraLC平台,A100、Venus3项目主板)
■AD6525(Athena)+AD6537B(TyphoonB)(Lyra平台,C200主板)
■AD6528(Hermes)+AD6535(Typhoon)(NOVA平台,P100项目主板)
其他相关芯片与别名:
AD6526(Athena4M),AD6529(Hermes)。
1.2手机硬件系统框架
所有ADIGSM基带平台方案基本相似,本文主要以AD6525+AD6521+ADP3522组合为例进行说明。
基带模块:
数字基带(DBB)+Codec+电源管理芯片(PMU)+存储器(Memory)+SIM卡+32KHz晶体+按键(KeyPad)+Speaker+Receiver+振动马达(Motor)。
多媒体功能部分:
和弦铃声芯片+摄像头模组+后端处理芯片(BackendIC或称DSP)+显示屏模块(LCM)。
射频模块:
天线+前端开关(Switch)+功放(PA)+收发器(transceiver)+13MHz晶振。
其他功能扩展
数字基带AD6525内部包含MCU,DSP等,是手机的控制核心。
所有的工作都在数字基带的控制下进行。
AD6521是一个VoicebandBasebandCodec,主要负责模拟与数字信号的转换和编解码等工作。
电源管理芯片ADP3522提供和管理几组基本电源。
在ADI的Typhoon系列芯片中,已经把VBC和PMU合在一起,称为模拟基带。
外部存储器由SRAM和NORFlash存储器组成,我们一般称之为Flash存储器。
32KHz晶体称为慢时钟,只要有电,该时钟就一直存在。
13MHz晶体主要用于GSM/GPRS射频模块用,也是数字基带运行所必须的快时钟。
射频部分,收发器负责射频信号的发射和接受控制。
功放是把要发射的信号放大,再经前端开关,从天线发射出去。
多媒体功能是在基带模块上的附加应用。
增加外设,在数字基带的控制下,实现附加的多媒体功能。
2.ADI套片介绍
2.1数字基带芯片AD6525
2.1.1AD6525内部架构
AD6525是AD20ms430SoftFone家族中的一员,是一个单片的可编程数字基带处理器,支持GSM900/DCS1800/PCS1900三频。
最高支持14.4Kbps的GPRS,HSCSD数据传输。
AD6525由3个子系统组成:
MCU子系统、DSP子系统和外围子系统。
AD6525支持可编程电源管理和时钟管理,可以支持13MHz或者26MHz(在L04M82B板上是13MHz),在idle状态下使用慢时钟,进入省电模式。
提供JTAG接口。
支持实时时钟。
支持1.8v和3v两种SIM卡。
外围子系统包括系统的外围,例如中断控制器、实时时钟RTC、看门狗定时器(WatchDogTimer)、电源管理和时序控制等。
也包含外围接口,例如键盘、电池监测、射频和显示等接口。
DSP和MCU都能通过PBUS与外围子系统连接。
DSP和MCU都能对内部SRAM和外部Flash进行存取。
对内部SRAM是通过SBUS,对Flash是通过EBUS。
子系统由各种总线连接在一起。
总线仲裁模块(BAM)处于各种总线的中心位置,负责各总线的仲裁。
EBUS,RBUS和PBUS是3个主要的总线。
EBUS:
外部接口总线,用于外部Flash存储器,外部SRAM存储器和其他外部设备。
方便MCU和DSP从Flash中读取代码和数据表。
RBUS:
内部RAM总线,接内部SRAM。
PBUS:
外围总线,用于内部的外围系统,例如UART,RTC和SIM等。
除了3个总线之外,MCU和DSP都有自己内部的总线:
SBUS:
系统总线,连接ARM核心控制器和BOOTROM;IOBUS:
DSPBUS;DMABUS:
DMA总线。
2.1.2AD6525MCU子系统简介
MCU子系统包含一个ARM7TDMI中央处理器、BOOTROM、时钟产生器和接口控制模块。
AD6525内置1MbSRAM。
MCU子系统支持所有的GSM终端软件,包括GSM协议栈,MMI和dataservice应用,测试和维护等。
ARM7TDMI处理器是一个32-bit高性能单指令周期RISC芯片,工作频率为39MHz。
其架构基于16/32bit指令集,能支持16/32bit数据格式。
它包含一个叫做“Thumb”的优化过的16bit的指令集。
我们手机正常工作时使用的就是Thumb指令集,目前Thumb在通信系统中应用非常广泛,但在ARM在BOOT时使用ARM32bit指令。
AD6525中,ARM除了在39M时钟下工作之外,待机模式下使用32KHz时钟。
BOOTROM包含MCU与USC子系统间的通信代码。
BOOTROM用来初始化MCU和MCU与USC之间的通信。
2.1.3AD6525DSP子系统简介
AD6525的DSP子系统包含ADI的ADSP-2183(DSP),数据存储器(DM)和程序存储器(PM),串口和其他I/O口等。
ADSP-2183包含一个Viterbicoprocessor、Cipheringcoprocessor和存储控制器。
它是16-bitFixedPointDSP处理器,可以达到78MIPS。
内置DSP专用数据和程序SRAM,支持FullSpeed,EnhancedFullSpeed和halfSpeed音频编解码,支持PDC语音算法。
DSP子系统主要负责语音处理(speechprocessing),信道均衡和信道编解码。
用于实现这些功能的代码存放在外部Flash中,在需要的时候动态地下载到DSP的ProgramRAM和InstructionCatch中。
DSP通过VSPORT,BSPORT与数字基带连接(例如AD6521)。
2.1.4AD6525外围子系统简介
外围子系统主要包括MMIgroup,HouseKeepinggroup,GSM-systemgroup和DSPdirectMemoryAccess四部分。
DSPDirectMemoryAccess是给DSP对其他存储器进行存取数据使用的。
MMI是一个完全的用户接口集合。
包括Keypad,Display,Backlight,RTC,GPIO/GPO,电源管理接口,SIM卡模块和USC等。
HouseKeeping包含传统的微处理器的一些外围功能,例如,WDT(WatchDogTimer),通用定时器,中断控制器等。
GSMsysteminterface包括timebasegeneration和synthesizerinterface,组成RF控制器。
另外包括32KHz慢时钟模块。
该模块中的MicroSM(MicroStateMachine),是一个完全可编程的时序控制模块,用它来对RF模块进行控制,实现严格的RF时序。
为了节电,在idle模式下,MicroSM会把13MHz时钟切换为32KHz慢时钟。
2.1.5GPIO/GPO
GPIO,通用输入输出口;GPO,通用输出口。
GPIO/GPO可以通过寄存器进行配置,实现不同的功能,除了基本I/O功能之外,还有ALT1,ALT2,ALT3三种其他功能。
2.1.6GPIO/GPO的选择与编程
GPIO/GPO由以下几个寄存器来控制:
功能选择,输出和输出使能,输入和输入使能。
这些控制寄存器的基准地址是:
0x。
GPIO/GPO功能选择:
GPIO/GPO输入输出控制:
AD6525复位后,GPIO的缺省状态主要有三种:
输入、输出高电平、输出低电平。
在缺省为输入时,需根据外部的连接方式确定是高电平或者是低电平。
在缺省为输出时,再分为输出高电平或者输出低电平(芯片内部上拉或者下拉),根据不同的需求选用GPIO/GPO口。
虽然GPIO/GPO都可以有多种用途,但最好不要随便改变。
许多GPO是用于RF控制的,在JTAG状态下,RF模块关闭,许多GPO禁用,不能通过软件来控制。
例如:
GPO[4:
0],GPO[11:
7]就不能使用。
需要在仿真模式下调试的,不要选用这些GPO。
2.1.7GPIO与外部中断
AD6525可以作为外部中断输入的GPIO口是:
电平中断信号:
GPIO_4、8、30、32
边沿中断信号:
GPIO_5、6、31、32,其中GPIO_32兼具两种类型的功能。
在设计时,请注意是电平还是边沿中断,以便选择合适的GPIO口。
2.1.8GSP
AD6525包含5个GSP(GenericSerialPort)模块,地址映射在PBUS上。
每个模块都支持一些串口。
有些GSP支持全速双工通信。
每一路都包含instructionRAM、PSM(ProgrammableStateMachine)和BitCounter。
其中本地PSM和时钟分频是共用的。
PSM执行一些指令,在相应的GSPx的信号端口上实现指定串口的协议。
这些指令包含流程控制、时序与电源控制和接口控制命令等,这些指令的长度为8bit,有些还需要参数。
可以用这些指令建立一个二进制文件,在需要使用的时候,下载到相应GSP中。
GSPx模块功能要实现,必须使用AD6525的外围I/O口。
GSPx与使用的端口对应关系如下表:
序号
模块
可以使用的端口
典型应用
说明
1
GSPa
USC;
UART
2
GSPb
USC;GPIO_0,1,2,3;
UART(Debug串口)
3
GSPc
GPIO_14,15,16,17;
4
GSPda
USC;GPIO_10,11,12,13;
I2C
GSPdb
USC;GPIO_6,7,8,9;
5
GSPe
GPO_16,17,18,19,20,21;
SYNTH(RF)
其中,GSPa、GSPb、GSPda、GSPdb都可以使用USC端口,GSPc只能使用特定的几个GPIO。
当然,同一时间只能有一个GSP使用USC。
可以利用GSPx的功能实现例如I2C,SPI,UART等串口。
例如:
重配置(reconfigure)GPIO_1,3为GSPb端口实现RX,TX,主要用于GPRS版本手机的Debug用;重配置USC为GSPb端口用于程序下载;重配置GPIO_10,11为GSPda端口,实现I2C时序等等。
2.1.9USC(通用系统连接接口)
USC,即UniversalSystemConnectorInterface,有7根信号线,USC[6:
0]。
USC具有多种功能,可以重定义用作实现一些GSP功能。
我们常用到的功能有:
a.BOOTMode和下载程序;
b.UART,Debug和附件接口;
c.GPIO口
dDAI音频测试接口和射频测试接口等等。
USC在系统启动阶段缺省是BOOT/DEBUG模式,如果下载程序,则为编程模式。
其他时候可以设置为UART和其他串口。
例如用于主板测试,手机与PC机通信交换数据(在PC机端使用PCManager软件)。
BOOTCODE与手机程序下载
AD6525Reset之后,ARM7都是从BOOTCODEROM开始执行。
此时只有MCU子系统和EBUS可用,DSP子系统并没有开始工作。
DSP是在MCU的控制下工作的。
程序下载过程可以分为几个个阶段:
a.上电启动:
我们是使用AD6525的USC端口给手机下载程序。
下载线中的充电电源线给手机的充电,打开了电源管理芯片的电源输出,在AD6525Reset之后,系统从BOOTROM中启动。
MCU以ARM32bit指令执行。
b.检测同步字节:
BOOTCODE把USC设置为BOOT/DEBUG功能模式(就是被重定义作为GSPb的端口),上电复位大约50ms以后,BOOTCODE通过GSPb检测同步字节,如果检测到有同步自己输入(由PC机端下载程序发出),AD6525与PC端下载程序建立通信,把USC设置为Flash编程模式;如果40ms以后还没有检测到,则BOOTCODE终止,程序指针跳到EBUSFlash地址(即ROMCS片选线选中的Flash)上启动,这就是手机正常的启动方式。
c.配置寄存器:
PC机端下载程序与AD6525建立通信后,将直接对AD6525相关寄存器进行配置。
d.下载“FlashProgrammer”:
通过AD6525的USC[2:
1](对应GSPb的TX/RX),PC机端下载程序把“FlashProgrammer”下载到AD6525的内部SRAM中。
e.下载“FlashCode”:
“FlashProgrammer”下载完成后,ARM重新把程序指针定位到内部SRAM中,开始运行“FlashProgrammer”程序,把USC重新配置为高速串口,先对Flash进行擦除,再把PC机端传送过来的“FlashCode”下载到Flash中。
实现手机程序的下载。
程序下载后,正常开机时,就是使用“FlashCode”来启动了。
AD6525的地址空间、时序调节和地址选择
AD6525的MCU的地址空间使用情况如下:
(R03为例)。
DSP的地址空间映射与MCU相似,下面主要讨论MCU的地址空间。
序号
地址类型
AD6525提供的片选信号线
地址
说明
1
Flash片选1
/CS_ROM
0x01000000
64Mb
2
Flash片选2
/GPCS1
0x
64Mb
3
SRAM片选
/RAMCS
0x08000000
32Mb外部RAM
4
MIDI片选
/DISPLAYCS
0x
5
DSP片选
(Camera功能)
/CS_MAIN(由/GPCS0与ADD08译码产生)
0x
/GPCS0的地址是:
0x
6
主屏片选
由DSP给出,与DSP的地址相同
0x
7
副屏片选
/CS_SUB
0x
8
IRAM地址
内置RAM
0x
1Mb
EBUS接口有一套寄存器,可以调节时序,基准地址是:
0xC0001200。
有些外围器件对时序有特定要求,需要修改AD6525的时序来满足外围器件的时序要求。
在驱动调试中,往往第一步就是检查和调节时序,使AD6525与外围器件通信成功。
例如设置GPCS0的时序,要读取当前的寄存器值:
unsignedlongdata;
data=*((unsignedlong*)(0xc0001200+0x0c));
写入寄存器,*((unsignedlong*)(0xc0001200+0x0c))=data;
DISPCS本来用作LCD的片选,但在实验中,我们发现不好控制,所以改用GPCS0来做LCD片选。
如果通过软件调节还不能满足要求,例如地址线与/CS建立时间的间隔要求,则可以考虑在需要调节的信号上增加合适的RC来调节时序。
在硬件设计中要考虑地址线负载的平衡性,例如低地址线,ADD01,变化的频率是最高的,而地址线越高,变化的频率会越低。
高速数字信号对RF的影响很大,在翻盖手机中,送给上盖LCD的地址线以前采用的是ADD01走线很长,对RF干扰很大,在新的地址线数目较少的外围器件,建议采用高位地址。
背光控制
AD6525能提供给PWM控制方式的背光信号有:
GPO22:
Backlight0(ALT1)
GPO23:
Backlight1(ALT2)
GPIO12:
Backlight2(ALT2)
由于背光控制信号能够输出波形,我们也可以考虑使用上面的GPIO/GPO口输出不同频率的时钟信号。
上述3个GPIO/GPO用作PWM输出时,控制寄存器为:
OutputFrequency=InputFrequency÷(FrequencySel+1);输入频率可以是32KHz,也可以是13MHz。
FrequencySel=1~127
Mark/Spaceratio=(DutyCycle+1)÷(FrequencySel+1);DutyCycle 背光控制线电平为高时,背光灯亮,为低时,背光灯暗,由于频率很高,肉眼感觉不出。 调节占空比(在一个周期内,调节亮的时间)可以改变灯的亮度。 亮的部分时间比例越大,平均亮度就越高。 如果100%为高,就相当与一直为高,灯就是一直亮,当然亮度是最高的。 反之,如果一直为低,灯就一直是灭的,当然亮度就最低,灯灭。 但使用PWM不能达到100%的亮度。 上面所谈到的,是指要求使用PWM波形控制的的背光驱动方式,可以采用该三个端口,如果不是PWM方式,当然可以选其他端口。 另外,上面三个端口也可配置为非PWM方式。 在ADITyphoon系列芯片中,模拟基带也提供了背光控制信号线,其基本原理与上面相同。 按键功能 Keypad接口由一组三态的KEYPADCOL输出和一组KEYPADROW输入组成。 ROW内部有上拉电阻,电平为高。 检测按键输入是对按键进行扫描,从COL[x]输出低电平,如果对应COL[x]上的哪个键被按下,则按键所在的ROW[y]会输入低电平,产生中断信号。 通过COL[x]与ROW[y],就可以定位到相应的按键。 RTC功能 AD6525提供一个RTC模块。 由OSCIN和OSCOUT之间接一个32KHz的晶体来实现提供32KHz的时钟。 使用RTC可以实现时钟和日历显示、闹钟、定时开机等功能。 RTC由Vddrtc供电,功耗很低,在电池不在时,使用贴片式备用电池供电。 目前我们使用的备用电池可以工作16-18小时左右。 RTC它包含一组积存器,是timer,alarm,control和status四种。 寄存器的基准地址是0x。 RTCTR(RTCTimer)是一个40bit计数器,该寄存器只能读和reset清零。 给它写入任何数据都会导致清零,所以为了防止误操作,都对它进行写保护。 RTC使用32KHz时钟,每个周期1/32KHz=31.25uS,那么Timer的计数范围为240*31.25uS/(60*60*24)=397天(约等于)。 RTCAR(RTCAlarmRegister)是Alarm寄存器,24bit。 间隔为2秒。 写入数据时先写低16bit,后写高8bit。 RTCAR24bit会与RTCTR的低24bit会进行比较,一旦相同,就会触发alarm中断,就会把AD6525的PWRON拉高2秒钟。 拉高PWRON会导致开机,但在alarm中断函数中对POWER相关相关寄存器进行设置,把PWRON一直拉高,否则超过2秒,RTC就会拉低PWRON。 RTCCR(RTCControlRegister)是RTC控制寄存器。 RTCSR(RTCStatusRegister)是RTC状态寄存器。 对RTCTR和RTCAR操作时,需要按照一定的顺序使用Control和Status寄存器万完成整个操作过程。 下面对我司手机ADI平台手机的RTC的一些基本操作思路进行简单说明。 a.设置日期时间: 由于RTCTR只能读和复位,为了保存时间,在NVRAM中保存一个基准的时间(BaseTime)。 设置时间时,其实是把用户设置的“年月日小时分钟”等信息写到NVRAM中,然后对RTCTR进行复位清零。 设置成功后RTCTR开始计数。 前面提到RTCTR的计数范围为397天,如果超过397天怎么办? 把当前时间更新到到NVRAM中的基准时间中,再复位清零,重新开始计数就行了。 在重新设置时间时,如果存在有效的闹钟,则根据新的情况再次设置闹钟。 b.读当前时间: 读取RTCTR中的数值,再加上NVRAM中的基准时间,就得到了当前的时间信息。 c.切换时区: 切换时区一般是以小时为单位进行切换,所以只需要把NVRAM中的基准时间进行加减操作,再保存进行了。 不需要重新设置RTCTR。 d.设置闹钟: RTCAR只有一个寄存器,其实通过软件配合可以设置许多不同种类的闹钟。 例如目前我们用到的定时闹钟,每周7天的闹钟时间是一样的,但可以选择哪天有哪天没有。 用户设置闹钟时,把设置的闹钟的时间存到NVRAM中,对需要设置闹钟的的时间进行排序,选择一个离当前时间最短的时间来设置闹钟(当然是当前时间之后,软件上验证)。 设置闹钟的时间不能超过24bit寄存器能计数的范围。 首先清除alarm中断使能,允许操作RTCAR,然后从读取RTCTR和NVRAM的基准时间得到当前时间,与需要设置的闹钟的时间进行比较,算出差值(差值肯定是正数)。 再把当前时间加上差值写入到RTCAR寄存器中,当然,只有低24bit有效。 再检查RTCAR是否设置成功,成功后关闭RTCAR操作使能,打开alarm中断。 闹钟设置完成。 e.闹钟中断处理: RTCAR会与RTCTR进行比较,比较有效的24bit内容,相同时触发中断。 如果处于开机状态,手机就进行相关处理。 如果手机处于关机状态,则AD6525把PWRON拉高,实现开机,在开机程序或者中断中把PWRON一直拉高,开机成功,然后继续处理闹钟的操作。 实现了闹钟的功能。 手机再从闹钟队列里找到下一个最近的闹钟时间,把新的闹钟时间设置到RTCAR中。 这样就实现了多个闹钟的功能。 WDT(看门狗定时器) 看门狗定时器在系统复位后启动(仿真跟踪测试除外),以217Hz的频率进行计数,就是每4.615ms计数1次。 在使用13MHz时,使用13MHz时钟分频(13MHz/60000=217Hz),使用慢时钟时,使用32KHz分频(32KHz/151=217Hz)。 WDT计数1024次之后,timerout后产生系统复位信号,就是说,WDT的timerout时间是4.72s。 为保证系统正常运行,必须在4.72s以内喂狗一次(清除WDT计数)。 可以使用WDT早期预警中断,打开使能后,WDT计数512次就会产生一个WDT中断,约4.72/2=2.36s。 JTAG调试 边界扫描技术(JTAG)是为了满足当今深度嵌入式系统调试的需要而被IEEE1149.1标准所采纳,全称是标准测试访问接口与边界扫描结构(StandardestAccessPortandBoundaryScanArchitecture)。 JTAG遵循1149.1标准,是面向用户的测试接口,是ARM处理器调试的基础。 ARM和其他一些32位嵌入式处理器的调试方式也基本上遵循这个标准。 这个用户接口一般由4个引脚组成: 测试数据输入(TDI)、测试数据输出(TDO)、测试时钟(TCK)、测试模式选择引脚(TMS),有的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BaseBand 工作 原理 培训 讲义 文档