历史上的今天
返回首页

历史上的今天

今天是:2025年02月09日(星期日)

正在发生

2018年02月09日 | 基于ARM 的来电号码显示器的实现方法

2018-02-09 来源:eefocus

  本文介绍基于ARM 的来电号码显示器的实现方法。利用CID 芯片HT9032C 来解调FSK 码,同时可实现液晶显示、E2PROM存储和语音播报电话主叫号码等功能,以SPI 串行接口智能显示键盘控制芯片ZLG7289A 为核心设计的键盘电路可实现查阅、删除信息。文章详细介绍了系统的硬件电路设计和软件流程。实践表明,显示器外围器件少,抗干扰能力强,使用方便。

  目前我国电话网交换机传送主叫识别信息CID(Calling Identity Delivery) 有两种方式,较常用的是FSK(频移键控) 方式,另一种是DTMF(双音多频) 方式。通过掌握相应的协议标准和数据格式,可通过ARM 控制芯片HT9032C 实现解调FSK 格式的来电信息,通过E2PROM 存储器存储来电信息,并利用液晶显示,同时控制ISD1402 语音芯片播放来电号码。以SPI 串行接口智能显示键盘控制芯片ZLG7289A 为核心设计的键盘电路实现查阅、删除来电信息。

  1 系统硬件设计

  1.1 系统总体设计

  整个系统由5 部分组成,分别是: (1) FSK 信号解调; (2) 来电号码语音播报; (3) 显示来电; (4) 存储来电信息; (5) 按键控制部分。具体如图1 所示。

图1 系统组成框图

图1 系统组成框图

  1.2 系统各组成部分设计

  (1) FSK 信号解调。

  CID 芯片HT9032C 解调器是台湾HOLTEK 公司生产的双列直插、低功耗的接收物理层主叫识别信息的CMOS 集成电路FSK 解调芯片,它能满足Bell 202 和CCITT V.23 标准,实现1200 波特率FSK数据传输标准,且能检测铃流和载波,电话线经过接口电路接到HT9032C 的TIP,RING,RDET1 和RDET2脚,当有振铃信号来时,HT9032C 的RDET 脚触发下降沿。在第一次和第二次振铃之间HT9032C 把逻辑"1" (1200 ± 12) Hz、逻辑"0" (2200 ± 22) Hz、传输速率为1200 bit /s 的FSK 信号解调成串行异步二进制数据。当检测到有效载波信号,CDET 触发下降沿。在DOUT 脚输出包括信道占用信号、标志信号和主叫识别信号的所有信号; 在DOUTC 脚只输出主叫识别信号。

  HT9032C 与ARM9 的具体硬件连线如图2 所示。

图2 CID 芯片HT9032C 与ARM9 的硬件连线

图2 CID 芯片HT9032C 与ARM9 的硬件连线

  HT9032C 的RDET 引脚接MCU 的外部中断0,当有振铃信号时,RDET 脚触发外部中断0 服务程序。

  HT9032C 的CDET 引脚接MCU 的外部中断1,当检测到有效解调后的主叫识别信号,CDET 脚触发外部中断1 程序。HT9032C 的DOUTC 引脚接MCU 的串行中断。当检测到振铃和有效载波信号,便打开串口中断,接收解调的FSK 信号,得到来电信息。

  (2) 来电号码语音播报。

  采用录放一体化的高保真单片固态语音集成电路ISD1420 实现自动语音播放来电号码。其内部有128K 的E2PROM 用于存放语音信息,并可分成160段,每段信息为0.125 s,总共可存储20 s 的信息。语音分段的信息是由ISD1420 的地址线A0 ~ A7 的值决定的。在录制过程中将可能要播放的语音库按每个0. 5 s 的单位进行录制,每个汉字或数字的语音信息对应到一个地址。在检测到来电号码后,依次给定A0 ~A7 的值就能构成一句话,播放来电号码。

 

  (3) 显示来电。

  液晶显示模块LCD 用来显示主叫号码、日期、时间等信息。LCD 接收到来电信息后即依次取出各个信息并进行显示。

  (4) 存储来电信息。

  采用允许三总线工作的串行外设接口(SPI) 芯片X25045 作为存储器。此芯片把看门狗定时器、电压监控和E2PROM 集成在单个封装内,降低了系统成本并减少了对电路板空间的要求; 其看门狗功能提供了对微控制器的保护,通过编程监控系统,当系统发生故障时自动以RESET 信号作出响应; X25045 的存贮器部分是CMOS 的4096 bit(512 × 8) 串行E2PROM.

  (5) 按键控制部分。

  采用ZLG7289A 控制3 个按键: "DEL"、上"UP"、下"DOWN"分别用于删除、查阅主叫信息。

  2 主叫识别信息的两种数据格式

  终端交换机向该被叫用户传送主叫识别信息数据传送时序如图3 所示。

图3 主叫识别信息数据传送时序

图3 主叫识别信息数据传送时序

  符号时间值:

  A-0.5 ~ 1.5 s 第一次振铃结束与数据传送开始之间的时间间隔。

  B + C-2.9 s 传送数据的时间包括信道占用信号Channel Seizure Signal 和标志信号Mark Signal.

  D-0.2 s 数据传送结束与第二次振铃开始之间的时间隔。

  E-1 s 铃流。

  B + C + D-3.1 s 各时段可根据具体情况定。

  信道占用信号和标志信号的目的是提示电话终端准备接收数据,校验字是用作差错检查。信道占用信号是由一组300 个连续的"0"和"1"交替的位组成,其第一个比特为"0",最后一个比特为"1".在通话状态下,信道占用信号不发送。标志信号是由180 个(在挂机状态下) 或80 个(在通话状态下) 标志位(逻辑"1") 组成,标志位由0 ~ 10 个逻辑"1"组成。

  每个数据字之前先行一位"0"作为起始位,在最后加一位"1"作为结束位,每个数据字的最低位先发送。这样,实际每个字占10 bit,即1PXXXXXXX0 (P为奇偶校验位) .数据传送时,信道占用信号发送后接收标志信号。主叫识别数据格式有两种: 单数据消息格式(SDMF) 和复合数据消息格式(MDMF) .

  (1) 单数据消息格式(SDMF)。

  单数据消息格式由消息头和消息体组成,这种格式的结构简单,可容纳的信息内容较少,如: 呼叫序号、呼叫建立日期和时间及主叫号码。消息头由消息类型和消息长度组成,它们均为8 bit.消息类型的值用来识别消息的特征,消息长度指明后面所跟的消息字的长度。消息体包括交换机需传给终端用户的消息,消息体可容纳1255 个8 bit 的消息字,每个字用8 bit 带校验位的7 位编码字符集表示。其消息格式如图4 所示。图4 单数据消息格式组成图

图4 单数据消息格式组成图

  (2) 复合数据消息格式(MDMF)。

  这种格式的结构比较复杂,可传送的信息包括除单数据格式内容外还有主叫用户的姓名等。复合数据消息格式也是由消息头和消息体组成,不同的是,复合数据的消息体由一个或多个小的参数消息组成,参数消息也具有参数头和参数体。参数头包括参数类型和参数长度,它们均为8 bit,参数类型值用来识别后续参数字,参数长度指明参数体中参数字的数目。复合数据消息格式允许不同特征产生的不同消息在同一个帧中传送。在此不再详述。

  3 系统软件流程设计

  系统软件由四部分组成,分别为主程序,中断0 程序,中断1 程序和串口中断程序。

  主程序及各程序功能介绍如下。

  (1) 主程序开始初始化系统各功能芯片,设置串行通信的波特率,从E2PROM 中读存储的来电信息,并显示最后一条信息; 然后开中断0 循环等待振铃信号。程序流程图如图5 所示。

图5 主程序流程图

图5 主程序流程图

  (2) 外部中断0 服务程序。

  当有振铃信号来时,便触发外部中断0 服务程序。

  若判断为第一次振铃,则开外部中断1,判断是否有有效解调FSK 信号。

  (3) 外部中断1 服务程序。

  当判断有有效信号来时,便触发外部中断0 服务程序。若判断为第一次振铃,则打开串口中断,准备接收解调为串行异步二进制数据的来电信息。

  (4) 串口中断程序。

  在串口服务程序中不断记录缓冲器SUBF 中的数据,存储并显示当前信息。

  4 实验数据分析

  串口输出的字符串为: 0x80 0x18 0x32 0x00 0x310x31 0x30 0x38 0x33 0x30 0x31 0x30 0x33 0x34 0x300x31 0x35 0x32 0x31 0x36 0x37 0x36 0x30 0x31 0x360x37 0xEF经过分析,0x80 表示此消息数据为复合数据消息格式,0x18 表示数据长度,后面则表示时间为2011 年08 月30 日10 时34 分,来电号码为01521760167,校验字为0xEF.所有数据和(包括校验位) 按256 的模求和为00,证明收到的数据完全正确。


推荐阅读

史海拾趣

Galaxy Microelectronics公司的发展小趣事

江苏飞翼智能科技有限公司成立于2023年,该公司迅速将无人机技术与大数据技术相结合,实现了从传统无人机表演企业向无人机应用型企业的转型。通过自主研发和技术创新,飞翼智能的无人机在地理测绘、土方开挖计算、三维建模等领域展现出强大实力。例如,在地理测绘领域,无人机通过镜头采集地面照片,结合后期处理,能够高效完成数据测绘,大大降低了人工用量,提高了工作效率。这一技术的成功应用,不仅为公司赢得了市场认可,也推动了无人机技术的智能化发展。

芯力微(CHI Power)公司的发展小趣事

面对日益激烈的市场竞争,芯力微不断推动创新,以应对市场的变化。在电源管理领域,公司不断研发新技术、新产品,以满足客户日益增长的需求。同时,芯力微还积极拓展新的应用领域,如物联网、汽车电子等,为公司的发展开辟了新的道路。这种持续的创新精神使得芯力微在电子行业中始终保持领先地位。

BURGESS公司的发展小趣事

BURGESS公司于1975年3月13日在伦敦正式成立,这标志着它在游艇经纪行业的起点。创立之初,BURGESS就凭借其专业的知识和敏锐的市场洞察力,在短短四年内成功进驻摩纳哥这一游艇行业的重镇。更令人瞩目的是,在同一年,BURGESS成功售出了当时世界上最大的游艇,这一成就不仅彰显了其卓越的实力,也为其在行业内赢得了极高的声誉。

Gigabit Logic Inc公司的发展小趣事
采用集成电路等现代电子元器件,提高了电路的可靠性和稳定性。
Chesivale Electronics公司的发展小趣事

在技术创新和合作伙伴关系的支持下,Chesivale Electronics公司开始加速市场扩张的步伐。公司不仅在国内市场取得了良好的业绩,还积极拓展海外市场。通过参加国际电子展会、设立海外分支机构等方式,公司的品牌知名度和影响力逐渐提升。同时,公司也注重品牌建设,通过提升产品质量、加强客户服务等措施,赢得了客户的信任和好评。这些努力使得Chesivale Electronics公司在国内外市场上都取得了不俗的成绩。

Headland Technology Product Group公司的发展小趣事

进入21世纪后,随着电子技术的飞速发展,HBControls意识到只有不断创新才能保持竞争力。公司加大了研发投入,成立了专门的研发团队,专注于新型继电器产品的研发。经过多次试验和改进,HBControls成功推出了HD-4850系列高性能继电器,该系列产品以其高可靠性、长寿命和低功耗等特点迅速赢得了市场的青睐。这一创新不仅提升了公司的市场份额,也进一步巩固了HBControls在继电器领域的领先地位。

问答坊 | AI 解惑

基于dsp builder的数字滤波器设计

版本:MATLAB2007a  QuartusⅡ7.2SP1  dsp builder7.2SP1 我首先做了一个DDS,参数及模块均按照《现代DSP技术》这本书上设计的, 但最后没有出来想要的正弦信号。。。 在设计的时候发现有些模块的描述和书上不同,可能是 ...…

查看全部问答>

DSP与单片机各自优势与比较

DSP与单片机各自优势与比较 1, DSP是单片机的一个分支。它有专门的FFT算法需要的特殊指令,流水线指令处理。能以较高的速度进行运算。我们可以根据需要选用他。如果你作一个遥控器,选用他就没优势了。因为很多其他的用于遥控的单片机比他更适合用 ...…

查看全部问答>

给中年工程师的忠告<转>

几年前写了《给年轻工程师的十大忠告》系列文章,不知不觉自己已经步入中年。做了十几年工程师,酸甜苦辣、百感交集,感觉中中年工程师命运更为令人忧虑。因此想写篇《给中年工程师的忠告》,算是姊妹篇,希望对中年工程师能有所启发,同时也给年轻 ...…

查看全部问答>

变废为宝——报废的汽车轮胎新用处

报废的汽车轮胎还能这样用!报废的汽车轮胎大都会被送回加工厂,重新融化、处理、塑形,作为新品出炉。不过,韩国设计师却给它们开创了另一种回收模式——他将这些废弃物品加工成为雕塑类艺术品,打造出不少活灵活现的静态雕塑作品,让废旧轮胎多了 ...…

查看全部问答>

LED分类

replyreload += \',\' + 378444;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

求rtl8187的datasheet

那位有rtl8187B的datasheet传一下,不胜感激 谢了 li.wencheng2004@gmail.com 谢了…

查看全部问答>

关于WINCE EVC 添加 处理器后 编辑出错的问题

报错为: .\\ARMV4IRel\\FileList.obj   :   fatal   error   LNK1112:   module   machine   type   \'ARM \'   conflicts   with  ...…

查看全部问答>

PLC与51单片机之间串行通信的问题(急求救...)

我用的PLC是OMRON的CPM2A。51单片机发,通过按键控制单片机串口发送的数据,使用的是外部中断INT1。当与p27口相连的按键按下时,单片机通过串口向PLC发送串“@00WD0000002859* ”,最后是一个回车符。因为有回车符,我不知道程序到底怎么编,我编的 ...…

查看全部问答>

跟我学上位机系列1--仿串口调试小助手

一直说搞一个上位机编程方面的教程,一直没有空,明天去合肥出差,今天准备休息一下,突然想到还有答应大家的上位机教程没有编写,下午抽时间根据大家的反馈写了一个仿串口调试小助手,功能基本完善了,大家在实际工作中也可以用,只是功能还不完善 ...…

查看全部问答>

请教香帮主---大页NAND接103ZET6的问题

我把小页的程序改了一下改成大页,只能读写一页正确.后面就不行啦. 芯片是K9F1G08UOA. //头文件FSMC_NAND.H #ifndef __FSMC_NAND_H #define __FSMC_NAND_H /* Includes --------------------------------------------------------------- ...…

查看全部问答>