监视系统的设计者和厂商一直希望微控制器能够为日常监视应用提供不断增加的通用功能,包括满足用电计量、汽车监控、数据搜集和传感器调节等方面的要求。maxq3120 就是为了满足这些要求而开发的低功耗、高速微控制器。它的主要技术规范如下。
•16 位、每秒8 百万条指令(8mips)、单周期risk 核 •32kb 闪存(flash 存储器) • 512b ram •具有独立波特率产生器的2 个uart •3 个定时器,其中1 个支持pwm d/a • 红外通信功能 •可驱动112 段lcd 的控制器 • 依靠电池备份、具有日历和亚秒闹钟功能的实时时钟 •16 x 16 位单周期乘法器和40 位累加器 •2 个16 位精密模数转换器(ADC)
下面介绍利用maxq3120 微控制器的以上特性和模拟i/o 及DSP 功能可以完成一些什么样的任务。
语音记录子系统
概念: 给一组工程师一片adc,他们就会发现如何用它来记录语音。但是,除了简单的记录声音,maxq3120 还能够做很多事情。以maxq3120 为核心,配合用户接口元件和廉价的nand 闪存,就可构建一个功能完善的语音记录子系统。
细节: 可以利用maxq3120 的一个adc 和pwm 定时器实现音频i/o。adc 的额定输入电压为+1v 到-1v,其内置的前置放大器的可编程增益可达16。通常,具有内置阻抗匹配的电容式拾音头可以直接连接到adc 的输入端。如果需要低噪声或高增益,可以采用maxim 公司的前置放大器max4467 ,该放大器能为拾音头提供所需的偏置,且为电池供电的应用提供功耗极低的关断模式。在输出端,用一个单级放大器驱动扬声器,该放大器同时还具有一定的抗混叠和pwm 平滑功能。
音频信号被转换成数字信号后,必须进行压缩和存储,以备重放。8mips 的处理能力使maxq3120 拥有足够的“马力”来应付许多常用的标准语音编码任务。此领域的“金科玉律”是itu g.711 编码,其工作速率为64kbps ,每秒发送和接收8000 个8 位采样。itu g.711 编码有两种不同的传递函数,用来将12 位采样值转换为8 位编码字。这两种函数就是通常所谓的a 律(主要用在欧洲)和µ律(主要用在美国)。
如果期望更高的压缩率,可以牺牲一些话音质量,采用itu g.726 编码。g.726 编码采用自适应差分脉冲编码调制(adpcm)方案对语音信号进行更高效率的编码。这种编码支持多种位率,最低为16kbps 。对大多数应用来说,该编码要求的处理速度不大于3mips。itu g.711 和itu g.726 编码都只需要很少的ram。在录音阶段,定时器每125µs (8mhz 时钟频率下每1000 个处理器周期)产生一次中断请求,微处理器响应中断后,计算在上一个定时器周期内得到的采样值的平均值(二或三个采样,adc 每48µs 采样一次),以便获得需要的8khz 采样率。之后,所采集的16 位采样就可采用选定的编码方案进行编码。在回放时,采样数据被线性化后送到pwm 控制器,驱动扬声器。
压缩后的音频数据就可用于存储,但maxq3120 微控制器除了程序闪存外没有其他的存储器,因此需用外部存储器来存储语音数据。对于此应用性价比最高的外部存储器是nand 闪存,其容量可达8 吉位。对于16kbps 编码,这种器件可提供超过6 天的语音存储。但是,nand 闪存并不完善。首先,大多数nand 闪存器件都带有一个“瑕疵图”,告诉应用软件在存储器阵列中的何处有“坏点”存在。其次,就像其他的可擦除存储器一样,在长期使用后,nand 闪存的有些单元会丧失存储能力。幸运的是,nand 闪存的这些缺陷对语音应用的影响不大,不像对固态磁盘等应用的影响那么大。在语音应用中,nand 闪存的这些缺陷可以被忽略,它们最多使语音中存在瞬间干扰。
对于容量如此巨大的语音存储,必须进行有效的存储管理。这项工作由系统的用户接口部分完成,用户接口部分的核心是lcd 控制器。它能够驱动4 个公共面上的28 段显示,maxq3120 的lcd 控制器兼容于大量现有的3v lcd 玻璃。可以非常低的成本获得定制的lcd 模块。
用户可以通过连接到maxq3120 通用i/o 端口的按钮来控制语音记录系统。maxq3120 有4 个8 位通用i/o 端口与器件的其他功能共用。
还需要做什么? MAXQ3120 是用于高级语音记录系统的理想微控制器。在利用它设计语音记录系统时,设计者仅需要完成下列工作:
•设计用户接口: 选择一款lcd ,确定如何显示信息、设置按钮功能、如何记录和组织语音数据。 •选择声码器: 可以选用以上提到的两个itu 编码器之一,也可以选用其他的专用编码器,在存储器容量足够大时还可以直接存储语音信号的原始采样值。许多标准编码器的c 语言源代码是可以买到的,因此只需要简单地开发接口程序。 •选择存储介质: nand 闪存是理想的选择,但也可以根据实际情况选择其他的存储器,例如,廉价的通用可移动存储器(sd、smartmedia™ 或mmc 存储卡)。有些厂商还可提供存储卡接口的c 语言源代码和开发工具。 •电池管理: 如果语音记录系统用电池供电,就需要某种形式的电源管理。maxim 有多种高效的低功耗电池管理方案。结合这些 方案和maxq3120 的低功耗停止和睡眠模式,将使语音记录器具有满意的电池寿命。
多普勒雷达
概念: 很多年以前执法部门就在使用多普勒测速雷达。如果这种雷达系统的造价能够大大降低,那它的用途就不仅仅限于对付那些道路上的超速者。比如,它可在前方车辆停车时提醒驾驶员。maxq3120 能在多普勒雷达系统中发挥哪些作用呢?
细节: 多普勒雷达的工作原理比较简单。雷达装置发射一个连续的、已知频率的微波束(在美国微波频率已上升到ku 波段,约24.150ghz) ,微波束遇到移动目标后被反射回来。由于反射波的频率稍微高于或低于发射波的频率,所以把反射波和发射波混频后可以得到频率由下式确定的“拍音”:
f = [v * (f0 / c)] * cosθ
其中,ν是待测目标的速度,f0 是额定发射频率,θ是目标运动方向与雷达系统之间的夹角(如图1a 所示),c 是光速。注意,如果目标直接对着雷达系统而来,则θ= 0,cosθ= 1 ,目标的运动速度变为:
v = [f / (f0 / c)]
例如,如果ku 波段多普勒雷达产生1khz 的“拍音”,则测量的目标直面而来(或而退)的速度为12.4m/s (即每小时28 英里或45 公里)。可用maxq3120 处理这种音频信号,框图如图1b 所示。
图1a. 接收信号的多普勒频移取决于目标的运动速度和目标运动方向与雷达系统之间的夹角。
图1b. 在多普勒雷达系统中,maxq3120 控制雷达头,并从雷达模块输出的中频(if)信号中提取“拍音”信号
利用两个ADC 通道中的一个,maxq3120 能够采样雷达模块输出的差分信号,提取出其中的最强频率分量,并把它换算成每小时公里或英里数。此外,利用maxq3120 的乘-加单元还可进行一些复杂的滤波运算,从复杂的信号中提取出最强的频率分量,并且可能从微弱信号中提取出有用信息(比如,多普勒雷达系统运载车辆本身的运动速度)。
很多情况下,用户接口的设计非常琐碎——常常是一些逻辑处理或者通过开关触发音频告警。有些应用中,微控制器还要周期性地记录速度、以及进行速度测量的时间和日期等。
还需要做什么?多数厂家生产的多普勒雷达模块输出音频if。对简单的测速雷达系统,剩下的工作非常简单。对于更复杂一些的测量分析系统,还需要开发一些有关信号处理的算法。幸运的是,有许多可用于辅助开发滤波算法和识别算法的优秀工具。
有些雷达系统需要指示目标的运动方向,即目标是远离还是靠近雷达?传统的多普勒雷达不能完成这项工作;它们对速度一样而方向相反的运动产生相同的频移量。现在,有些厂家生产的雷达模块包含两路正交输出,解调这两路输出,根据它们的相位差雷达系统便可以确定目标的运动方向。maxq3120 微控制器有两个adc,用它可以很容易地实现这种功能。
电话管理器
概念: 有时人们希望追踪电话的使用情况(谁与谁通了话,什么时候通的话,通话时间是多少),但又不愿购买昂贵、复杂的通话计费系统。这种情况的例子很多。比如,父母想追踪孩子的电话使用情况。职业人员想要一个自动记录他们何时给谁打了电话,以及谁何时给他们打了电话的日志工具。当各个房间的电话公用一条电话线时,那些以住宿加(次日)早餐方式出租房间的房东,就希望有可以追踪电话使用情况的系统。这种系统可以使他们比较容易地向客人收取电话费。可以利用maxq3120 微控制器组成监视电话线上所有通话的装置(见图2)。
图2. 电话管理器监视呼出号码、来电振铃、主叫id 以及摘机事件,确定呼出号码、主叫号码以及通话时间。
细节: 电话管理器必须监视四种情况:电话线的挂机/摘机状态、来电振铃、呼叫号码和主叫id 信息。其中最简单的是摘机信号的监视,因为摘机时,线电压从48v ( 挂机状态)变为12v 以下(摘机状态),电压检测器很容易检测这种变化并通知MAXQ3120 微控制器。
来电振铃由电话公司在电话线上加载的高压交流信号产生。该信号经过电容耦合和光电隔离器后向处理器发出告警,同时保持与电话线的隔离。通常,与0.47µf 电容和4.7k电阻串联的双向光耦合器能够可靠地检测到该信号。为避免误动作,可采用一对背靠背的齐纳二极管,只有当电压超过击穿电压时才允许电流流入光隔离器。
呼叫号码的接收稍复杂一些,因为有两种向电话公司发送号码的方法:脉冲拨号和音频拨号。脉冲拨号方法根据拨打的数字在每秒钟内产生10 个电流脉冲。为了检测脉冲拨号,只需检测电话线上由低到高的电压跳变的时间,如果以每秒10 次的速率出现一串跳变,无疑这就是脉冲式拨号。
但是,脉冲拨号电话机越来越少,目前流行的是双音多频 (dtmf) 拨号方法。在该方法中,电话上的数字键被排成三列四行,见图3。按下一个数字键,会产生一个与行对应的音和一个与列对应的音。通过检测并解译音调的组合情况,maxq3120 就可确定拨出的号码
图3. 双音多频(dtmf)拨号方案为键盘上的每个键安排了一个行音和一个列音。
注意,最右边一列(a、b、c 和d 键)仅用在局端设备上,客户端没有。
goertzel 算法是一种适合于cpu 实现的高效音频信号检测方法。它是一个双极点滤波器,可以在噪声信道中清晰地检测出音频信号。在maxq 微控制器上实现该算法的程序已经通过了测试。
利用主叫id 服务确定主叫者的电话号码很容易。这项服务的订户可在第1 和第2 声振铃之间收到一个1200bps 的信号,其中包含主叫号码、主叫者的名称以及时间和日期等。
在美国,电话局采用bell 202 调制解调器标准传送主叫id。欧洲所采用的标准是itu v.32 模式2 (1300hz 传号和2100hz 空号)。两种标准的数据传送速率都为1200bps 。很容易在一个应用中同时支持这两种标准,但这里仅讨论美国使用的标准。在该标准中,“0”位用2200hz 音频表示,“1”位用1200hz 音频表示。maxq3120 可容易地检测到过零点,并由此确定输入信号频率和它所代表的数据位。数据格式很简单,为串行异步n81 格式(无奇偶校验位,8 位数据,1 位停止位)。
检测到位值后还要解析消息的格式。有两种主叫id 格式。第一种仅包含主叫号码和日期及时间。如下所示:
如果用户只订了“仅号码”主叫id 业务,就用这种格式为他们传送主叫id。注意,除了类型、长度和校验和外,其他字符以ascii 码传送。如果没有主叫号码,就用字母“o”代之。如果主叫号码应呼叫者的要求禁止传送,则用字母“p”代替电话号码。校验和为此信息中前面诸字节以256 为模的和,为2 的补码格式。
如果用户订购了“姓名和号码”主叫id 服务,就会收到如下所示的信息:
其中,type 总为0x80,length 为所有数据块的长度。数据块的格式为:
其中,block type 表示传送数据的类型,其值根据下表选择:
一旦有关某次通话的数据搜集齐后便可存储在i2c* eeprom 中。这类器件廉价、可靠,并且可以提供多种存储容量。一个16kb 的eeprom 能够存储100 条姓名-号码格式的主叫id 记录。在maxq 系列处理器上用软件实现i2c 通信的代码也有提供。
还需要做什么?还可以考虑对该系统的功能进行一些强化。尽管上面所讨论的方案可以监视所有在线的电话,但它还是无法告诉你是哪部电话发出或应答呼叫。为了做到这一点,每部电话机上需要安装一个无需任何用户界面的监视装置。maxq3120 可以通过电流传感器确定电话机何时被摘机,并通知位于中央的电话管理器。为完成这种通信任务,话机中的微控制器可以发送dtmf 数字信号,用来识别呼出或应答话机。在挂机状态,电话公司对这些信号“视而不见”,因此,户内电话线就为这些数字信号提供了理想的信道。
另一方面的强化是自动登录到一台计算机。maxq3120 微控制器具有uart 通道,可以和pc 的串口连接,这样就可将电话管理器彻底转变为一个小巧的电话计费系统。如果再把这种计费系统和前面介绍的语音记录系统结合起来,你就拥有了一个非常完善的应答机或电话记录器。
电力监视装置
概念: 电费为什么这么高?这是电力公司经常听到的抱怨。其中,与燃料价格无关的部分原因是越来越多的电器始终处于耗电状态。
不要抱怨电冰箱,因为它的电源是间歇开关的,只有当电冰箱的内部温度高于限定值时电源才被接通。实际上,耗电的设备到处都是。想一想多媒体设备中发出亮光的指示灯,告诉你它已被关闭,等待你的遥控命令来打开它。过去,“关掉”开关就意味着该设备不再有任何形式的工作。但在今天,关掉电视机只是使其处于等待模式,许多电路仍在耗电。事实上,现在已经很难找到真正切断电源的电器。
微机也是隐蔽耗电的设备。在当今的网上时代,人们离开时还让微机下载文件、收取邮件等等。它要花多少电费?
在此最后一部分,MAXQ3120 回归其本源,但角色转变为用电者,而不再是供电者。图4 示出了本应用的框图。
图4. 用电监视装置能够确定某电器何时用了多少电。它还可以报告会损坏敏感设备的电压浪涌和掉电故障。
细节: maxq3120 专为支持电表应用而设计。它的两个ADC分别设计用于监视电压通道和电流通道。在本项目中,maxq3120 连续监视进入某设备的电压和电流。然后, 它可以报告该设备的平均功率,用电高峰出现的次数和幅度,以及,如果需要的话还可提供该设备的功率因数。
如何报告呢?最简单、直接的方法是在监视装置上采用一个小巧的lcd 。可以使用一个或多个按钮控制maxq3120 在多种显示模式间切换(电压均方根、电流均方根、功率、度数等等)。lcd 价格极其低廉,用来监视单个设备时,可做的非常紧凑、易用。
如果要监视多个设备,可以建一个中心站来记录来自各从站的数据。该项目的难点在于通常的供电电路用于数据传送介质时质量太差。用廉价的模块无法实现理想的数据传输速率。
但是,可以用廉价的模块实现不太理想的数据传输速率。maxq3120 的adc 仅有20,000 次/秒的采样速率,这种速率无法解调100khz 范围内的载波(这个频段被普遍用于电力线控制系统),但是它们可以解调音频范围的载波。如果数据传送速率足够慢,比如约10bps ,可以实现非常可靠的通信。
这样除了监视电力外,maxq3120 的DSP功能还要完成另外两项工作:监视来自两个窄带的信号功率,并尝试从中检测出低速频移键控(fsk)信号;如果接到请求,还要为主站发送3khz 至7khz 的fsk 信号。
主站可以是单独的装置,也可以通过微机的串口与其连接。后一种方案更具有吸引力,因为微机的存储量足够大,且能够完成比微控制器更复杂的任务。
还需要做什么?还需要做什么?不多。可申请完整的电表参考设计(zip, 76kb),经过简单修改后可用于此项目。关于电力线通信,用于信号产生和带通滤波的maxq3120 代码也可找到。因此,只需将这些部件整合在一起便可轻松构建一个低数据速率fsk 调制解调器。简言之,通过简单地整合现有的硬件和软件元素,就可组成一个可工作的产品。
结论
通过这些应用实例我们可以看到,除了作为多功能电表的核心外,maxq3120 微控制器还大有可为。强大的功能使这款微控制器在很多应用领域有扩展的机会,可能是你下一个混合信号项目的理想方案。