您现在的位置:首页 > 技术支持技术支持

基于IP核的PSTN短消息终端SoC软硬件协同设计

发布时间:2017-06-16 08:04:08  来源:大电流电感厂家   查看:

图1 经过扩电感器生产厂家展的DW8051_core SFR总线以及SoC系统结构

3.2 外设在SFR总线上的地址映射

  DW8051_core通过SFR地址总线sfr_addr[0:7],SFR读信号sfr_rd,SFR写信号sfr_wr,SFR数据输出总线sfr_data_out[0:7],数据输入总线sfr_data_in[0:7]来访问映射到SFR总线上的片上外设。每一个外设都通过SFR地址映射成SFR总线上的一个寄存器,如图2所示。

  对这些扩展SFR寄存器的访问和对普通寄存器的访问在形式上并没有区别。当应用程序使用Keil的C51编译器时,修改r共模电感eg51.h文件可以让编译器确认用户所扩展的SFR寄存器。对扩展SFR外设地址的分配可以根据设计需要而不同,但是只能使用DW8051_core没有保留和占用的地址,否则会发生冲突。在reg51.h文件中添加以下语句让编译器确认扩展的寄存器:

  sfr SEND_MODEM_DATA = 0xf1;/* 扩展,功率电感器发送Modem数据,只写 */
sfr READ_FSK_DECODE = 0xf1;/* 扩展,读FSK解调数据,只读 */
sfr READ_DTMF_DECODE = 0xf2;奇力新电感/* 扩展,读DTMF解调数据,只读 */
sfr MODEM_STATUS = 0xf3;/* 扩展,Modem状态,只读 */
sfr MODEM_CTRL = 0xf2;/* 扩展,Modem控制,只写 */
sfr KEYPAD_VALUE = 0xf4;/* 扩展,读键盘值,只读 */
sfr FLASH_PAGE = 0xf5; /* 扩展,页面寻址,只写 */
sfr LCD_DATA = 0xf6; /* 扩展,LCD数据,读写 */
sfr LCD_CTRL = 0xf7; /* 扩展,LCD控制,只写 */
sfr CIRCUIT_STATUS = 0xff; /* 扩展,线路状态,只读 */
sfr CIRCUIT_CTRL = 0xff; /* 扩展,线路控制,只写 */

  为了节约SFR总线地址资源,一些扩展的SFR寄存器在硬件上设计为只能写、不可读,另外一些被设计为只能读、不可写。这样,二者可以复用同一个SFR总线地址,比如MODEM_CTRL和READ_DTMF电感器生产_DECODE寄存器;但是这样在需要先将那些“只写”寄存器的内容读出,运算后再进行写回操作的时候就很不方便。这里采用了镜像变量的方法,为每一个“只写”寄存器建立一个全局变量,每次写寄存器操作后,都对这个全局变量进行同样的写操作,时刻保持变量值和寄存器的内容一致,在需要读出的时候就使用此全局变量。MODEM_CTRL寄存器的bit0控制Modem是DTMF还是FSK模式。下面以对这一位的操作为例说明。

  建立它的镜像全局变量:

  unsigned char xdata modem_ctrl_mirror;

  定义控制位:

  #define MODEM_B0_MODE0x01// 1-DTMF, 0-FSK

按此在新窗口浏览图片
图2 片上外设在SFR总线上的物理连接

  设置Modem为FSK模式:

void Modem_SetMode_FSK() {
MODEM_CTRL = modem_ctrl_mirror & (~MODEM_B0_MODE);
modem_ctrl_mirror = modem_ctrl_mirror & (~MODEM_B0_MODE);
}

  在初始化程序中对这些“只写”寄存器及其镜像全局变量进行赋值。

void DevicesInit() {
MODEM_CTRL = MODEM_CTRL_INI;
modem_ctrl_mirror = MODEM_CTRL_INI;
}

3.3 存储空间的划分和映射

  在物理上,把8KB的片内RAM分为两部分,0000H~1BFFH(共7 KB)映射到数据空间,1C00H~1FFFH(共1 KB)映射到程序空间,并覆盖Flash中程序空间的1C00H~1FFFH区域;把512 KB的Flash存储器也分成两部分,00000H~0FFFFH(共64 KB)映射到程序空间,剩下的10000H~7FFFFH(共448 KB)都映射到数据空间。

  对微控制器核来说,可以寻址64 KB的程序空间和64 KB的数据存储空间。对整个SoC而言,电感器生产厂家因为Flash中的程序空间有1 KB被RAM程序空间覆盖掉,所以逻辑上它的程序空间依然是64 KB,但数据空间变为7 KB+448 KB,共455 KB。微控制器核通过扩展的SFR寄存器FLASH_PAGE按32 KB×16页的页面方式访问Flash存储器,其中包括程序空间和数据空间,如图3所示。

按此在新窗口浏览图片
图3 程序空间和数据空间的划分和映射

  在对Flash存储器件进行写操作后的某一段时间内(从几十μs~几百μs),对它进行读操作是不能读出一个确切值的,这是Flash存储器件的一个特性。本设计中程序和数据存放在同一个AM29LV040 Flash存储器中。在对Flash存储器进行写操作时,要不断地从其中读出进行写操作的程序指令,然后对它本身进行写操作。微控制器核在20 MHz的时钟频率下,指令周期大约是200 ns,即每隔200 ns左右,SoC就要从Flash存储器中读取一条指令。这显然和上述的Flash存储器特性发生了冲突。 平面变压器厂家 | 平面电感厂家

100G的传输技术 100G传输的驱动力过去的三年里面,由于IPTV, HDTV, VoD和移动宽带业务的快速发展,特别是基于Internet的视频应用和P2P应用的迅猛发展,使运营商的骨干网络的业务流量持续增长。相关

[DCDC]-48V转3.3V方案 本帖最后由 sdapo 于 2015-5-16 15:10 编辑 谁有低价的-48V转3.3V方案。 。   耐压60V以上。 。 真坑爹的需求...这个方案很不稳定    有其他稳定方案不。 。 。 电流低于0.1A低价的没见过TI有几款80~100V的片子还有,估计你是做通信设备的,如果你的东西要与别家设备有连接,最好电源转换是隔离的,不然说不定哪天你就冒烟了s

极低超低纹波噪声电源模块寻找一款极低超低纹波噪声DC-DC电源模块,输入5V输出正负5V,2~5W,要求极低的纹波噪声,是否有人可以推荐一下,另外,当然也可以是有输入5V,输出5V和输入5V,输出-5V的两片DC-DC模块来实

CopyRight2014
大电流电感 | 大功率电感 | 扁平线圈电感 注塑加工厂