1、MTK平台软件架构软件二部 王刚第1页,共40页。MTK方案简介联发科技介绍MTK多媒体手机平台GSM/GPRS手机软件方案MTK软件分层介绍软件结构图表OSL1 protocol stackDevice driverL2 L3 L4 protocol stackMMIMTK 方案Task架构MMI task 消息处理过程example第2页,共40页。一、MTK方案简介第3页,共40页。联发科技简介联发科技简介第4页,共40页。联发多媒体手机平台联发多媒体手机平台MT6218 GSM/GPRS Multimedia PlatformMT6205 GSM Low-End PlatformGSM
2、/GPRS/WCDMA Multimedia Phone3G2.5GMT6219 GSM/GPRS Video Platform第5页,共40页。GSM/GPRS 手机软件方案手机软件方案 DSP/Layer1Nucleus RTOS SIM Tool Kit/EMSEmail ClientWAP/MMS JavaOn-Time FAT第6页,共40页。二、MTK软件分层介绍第7页,共40页。MTK软件架构图表第8页,共40页。三大组成单元nMS(Mobile Station)执行软件:运行于MS上n操作系统 Nucleusn物理层协议栈n驱动程序ngsm协议栈nMMInMETA:The Mo
3、bile Engineering Testing Architecture nCatcher第9页,共40页。操作系统nNucleus 实时操作系统,MTK封装了适配层,将OS封装了一些API,这些API为其他软件提供服务,如:队列,消息,timer,内存管理等第10页,共40页。L1层协议栈(GSM 物理层)nL1或者叫物理层,提供物理介质上的bit流传输,遵循 gsm 技术05系列规范n为上层软件提供服务,且控制逻辑信道到物理信道的映射和安排n无线控制以及TDMA桢第11页,共40页。L1层逻辑图Layer 1AsynchronousLayer 1 ControlLayer 1 Drive
4、rSurroundingCell Engine第12页,共40页。L1各部分功能nL1异步逻辑:处理上层软件的消息请求,发送L1处理后的结果给上层软件nSurrounding Cell Engine:处理相邻小区的功率测量以及同步信息获取nL1层控制:处理无线环境中的TDMA时序安排,包括定时提前以及来自基站的功率控制nL1驱动:DSP 以及无线控制第13页,共40页。设备驱动n设备驱动支持所有MCU(微处理器单元)外设的控制功能n本模块处理一些用户可见操作的一些设备,如键盘,LCD等n通过L4层接口,访问寄存器来控制外设第14页,共40页。MTK平台外设第15页,共40页。外设功能解释nSI
5、M:Subscriber Identity ModulenUART:Universal Asynchronous Receiver/TransmitternSPI:Serial Port InterfacenLCD:Liquid Crystal DisplaynGPIO:General Purpose Input/OutputnGPT:General Purpose TimernRTC:Real Time ClocknWDT:Watch Dog TimernPWM:Pulse Width ModulationnAlerternKeypadnPMIC:Power Management ICnBM
6、T:Battery Charging Management tasknAUX task:Auxiliary tasknADC Sched.:Analog to Digital Converter SchedulernUSB task:The USB 1.1 protocol and drivernIrDA task:The IrDA and drivernCamera:Camera driver for integrating with 3rd party camera modulenMSDC:Memory card driver,supporting SD,MMC cards and Mem
7、ory SticknJPEG Decoder:Software for controlling hardware JPEG decoder第16页,共40页。L2/L3/L4层协议栈n本部分覆盖了许多gsm/gprs协议需求点n为上层应用程序提供卓越的gsm/gprs平台n软件平台非常适合手机上面的操作以及通过AT命令进行PC操作第17页,共40页。第18页,共40页。模块介绍nRMI Remote MMI,PC端通过UART口与协议栈进行通讯nFMI Feature rich MM nL4 MMI通过L4与gsm/gprs协议栈进行通讯,包括以下子模块ATCI:AT Command Inte
8、rpreter,解释来自PC端的命令并命令L4做相应的动作L4A:L4 adaptation Layer,MMI与L4A通过消息通信L4C:L4 Control entity,处理所有的应用程序请求和响应 UEM:User equipments adaptation,驱动相关的适配层第19页,共40页。PHB:Phone book management,电话簿相关的处理,如分类等SMU:SIM management Unit,安全性管理以及STKCSM:Circuit switching protocol stack management电路交换协议栈管理RAC:Registration ac
9、cess controlSMSAL:Short message service application layerTCM:Terminal context managementnNVRAM Nor-volatile RAM,是MMI到Flash的一个适配层,保存一些默认设置nSIM Subscriber identity module.Handle SIM behavior as ETSI 11.11 descriptionDATA 电路交换数据服务,包括以下子模块第20页,共40页。FAX:Group 3 Facsimile TDT:Transparent circuit switching
10、 dataL2R:Layer 2 relay protocol for non-transparent circuit switching dataRLP:Radio link protocol for non-transparent circuit switching datanCC Circuit-switched call control 电路交换呼叫控制 nSS supplementary service 附加服务nSMS short message service 短消息服务nSM session management 会话管理nMM/GMM mobility management
11、移动性能管理nSNDCP sub-network dependent convergence protocol第21页,共40页。nLLC Logical link control 逻辑连接控制nRR Radio resource management,包括以下子模块RRM:Handles cell selection and PLMN selectionRMPC:Handles the procedures in Idle/Dedicated state including the surrounding cell scheme and measurement reportingLAPDM:
12、Handles the procedure defined in GSM layer 2RLC:Radio link control protocolMAC:Medium access control protocolMPAL:Adaptation layer for RR and L1APPP Point to Point protocol layer,客户端点对点协议第22页,共40页。MMI介绍 nUI架构n应用程序n与ps的通信第23页,共40页。MMI Framework nOLS 操作系统适配置层,对操作系统进行封状nTask MMI任务,与L4 task 进行通信nFile sy
13、stem 与存储设备通信,进行文件存取第24页,共40页。MMI GUI介绍nTheme 主题风格,主要使菜单等颜色设置,以及背景图片等nUI component nCategory Screen 每一个界面都是一个screennFont 字体风格nEditor 编辑筐n输入法n访问LCD 驱动nMMI定制工具第25页,共40页。MMI应用程序nPhonebook Message Call History nSetting User profile Fun and gamenOrganizer Service Shortcut Cameran.第26页,共40页。三、MTK 方案Task架构第
14、27页,共40页。系统初始化nHardware boot and setup system stack etcnNucleus Plus RTOS initializationnHardware InitializationnTasks/Modules initialization/configurationnTasks CreationnTCT_schedule()for scheduler to context switch第28页,共40页。第29页,共40页。MMI taskn主要管理应用程序,task从与之相关的队列中读取eventMMI Queue 协议栈/L4 将events写入
15、到队列中,MMI task 从队列中读取eventL4 Queue MMI task 将MMI events 写入队列,L4 task 从队列中读取event第30页,共40页。MMI tasknMMI 注册消息事件n在MMI队列上面等待消息n协议栈将消息放入MMI消息队列nFramework Layer 处理eventsnFramework layer 调用应用程序注册的回调函数n回调函数中应用程序用UI category 函数和风格进行screen 显示第31页,共40页。MTK Customer创建tasktypedef struct kal_char *comp_name_ptr;ka
16、l_char *comp_qname_ptr;kal_uint32 comp_priority;kal_uint16 comp_stack_size;kal_uint8 comp_ext_qsize;kal_uint8 comp_int_qsize;kal_create_func_ptr comp_create_func;kal_bool comp_internal_ram_stack;comptask_info_struct;const comptask_info_struct custom_comp_config_tbl MAX_CUSTOM_TASKS =/*INDX_CUSTOM1*/
17、CUST1,CUST1 Q,210,1024,10,0,customMMI_create,KAL_FALSE,NULL,KAL_FALSE,第32页,共40页。Tast createkal_boolcustomMMI_create(comptask_handler_struct*handle)static const comptask_handler_struct customcms_handler_info=MMI_task,/*task entry function*/NULL,/*task initialization function*/NULL,/*task configuratio
18、n function*/NULL,/*task reset handler*/NULL,/*task termination handler*/;*handle=(comptask_handler_struct*)&customcms_handler_info;return KAL_TRUE;第33页,共40页。注册消息事件nSetProtocolEventHandler(mmi_msg_handle_new_msg_ind,MSG_ID_SMS_NEW_MSG_INDEX_IND);for(count=0;count maxProtocolEvent;count+)if(protocolEv
19、entHandlercount.eventID=eventID)isNewEvent=FALSE;break;protocolEventHandlercount.eventID=eventID;protocolEventHandlercount.entryFuncPtr=funcPtr;第34页,共40页。发送消息typedef struct ilm_struct module_type src_mod_id;module_type dest_mod_id;sap_type sap_id;msg_type msg_id;local_para_struct*local_para_ptr;peer
20、_buff_struct *peer_buff_ptr;ilm_struct;msg_send_ext_queue(send_ilm);第35页,共40页。MMI task 等候消息if(!OslReadCircularQ(&Message)OslReceiveMsgExtQ(qid,&Message);OslGetMyTaskIndex(&my_index);OslStackSetActiveModuleID(my_index,MOD_MMI);第36页,共40页。处理消息void ProtocolEventHandler(U16 eventID,void*MsgStruct,int mod
21、_src,void*peerBuf)ExecuteCurrProtocolHandler(U16)eventID,MsgStruct,mod_src,peerBuf);for(count=0;count maxProtocolEvent;count+)if(protocolEventHandlercount.eventID=eventID)currFuncPtr=(PsExtPeerFuncPtr)protocolEventHandlercount.entryFuncPtr;break;if(currFuncPtr)&(!interrup_result)MMI_TRACE(MMI_TRACE_
22、G1_FRM,MMI_FRM_INFO_EVENT_EXECURPTO_HDLR,eventID);/(*currFuncPtr)(MsgStruct,mod_src);(*currFuncPtr)(MsgStruct,mod_src,peerBuf);第37页,共40页。Example:按键处理过程 nMMI task注册某个按键的处理函数n硬件扫描键盘,发现按键,产生中断,且修改相应的寄存器(记录哪个键被按)n低级中断激活高级中断,高级中断产生eventnKeypad task 等待事件,收到event,读取寄存器,解析按键,知道哪个键被按,发送message 到 UEM tasknUEM task 发送按键事件到MMI tasknMMI Framework 找到MMI注册的该按键的处理函数,执行相应的动作第38页,共40页。THANKS!第39页,共40页。演讲完毕,谢谢观看!第40页,共40页。