1 引言
随着超大规模高速集成电路的发展,现代电子技术进入了片上系统SoC(System on a Chip,简称SoC)的设计与应用阶段。SoC从系统的整体功能及性能出发,把微处理器(MPU)、芯片结构、数字/模拟等外围器件全部放置在一块芯片中,实现整个系统的功能。与传统功能单一的MCU芯片相比,SoC可以根据系统要求增加多种功能,在相同的工艺条件下可实现更高性能的系统指标,所需的晶体管数目可降低2~3个数量级;同时SoC技术的应用减小了集成系统的体积,降低了功耗,提高了系统的抗电磁干扰性和可靠性[1]。 本文基于SoC技术研制了一种多通道数据同步采集系统,该系统选用集成有七通道A/D转换电路的SoC微处理器采集七个通道的模拟信号;采用铁电存储技术扩展存储器FM1808,弥补微处理器存储单元容量有限的问题,并实现数据的长时间存储。为了显示采集的数据信息,本文设计了LED串行接口驱动电路。另外,该系统也可实时将所采集数据发送至上位机。 SoC技术是当今超大规模集成电路的发展趋势,也是21世纪集成电路技术的主流,为集成电路产业提供了前所未有的广阔市场和难得的发展机遇[2]。SoC技术是一种高度集成化、固件化的系统集成技术,其核心思想是把整个应用电子系统全部集成在一个芯片中。使用SoC技术设计应用系统时,除了那些无法集成的外部电路或机械部分以外,其他所有的系统电路全部集成在一起。 本文根据系统的要求选择相应的微处理器CPU内核和IP模块,设计并实现了基于SoC技术的多通道数据采集系统,使得系统的固件特性和功能得到了充分的优化。
2 基于SoC技术的多通道数据采集系统硬件结构
本系统主要由核心控制单元、数据存储和读取单元、LED显示单元和数据上传单元组成,系统硬件结构如图1所示。

图1 系统硬件结构图
本系统设置了四个功能键,系统模块的功能选择由功能键调用,具体功能如下: (1) LED显示键:每按一下则显示一个通道采集的数据及其通道号,可通过连续操作来显示各个通道的采集数据。该键连接微处理器端口IOB2,执行中断功能。 (2) 读取键:按一下则将存入铁电存储器的历史数据全部发送至上位机。该键连接微处理器端口IOB3,执行中断功能。 (3) 上传键:按下去则不断的向上位机发送各个通道采集的数据,将键复位则停止数据发送。该键连接微处理器端口IOB10,实现导通数据流的功能。 (4) 存储键:按下去则将实时采集的数据存入铁电存储器,将键复位则停止存储。该键连接微处理器端口IOB13,实现片选存储芯片的功能。
2.1 核心控制单元 由于该系统最基本的功能是采集多路模拟信号并将其转换为数字信号,因此选用具有多通道A/D转换功能的微处理器CPU内核和IP模块。本系统核心控制单元采用基于SoC的新型数/模混合系统级芯片SPCE061A,该芯片的CPU内核为凌阳科技公司最新推出µ’nsp(Microcontroller and Signal Processor)16位微处理器芯片(简称µ’nSPTM)。 传统的多通道数据采集系统需外扩多个A/D转换电路来实现多通道数据采集,使得系统结构复杂化,且A/D转换精度易受干扰。本系统采用的SPCE061A芯片内集成了模拟/数字数据采集的外设及其它功能部件,其中有七路通道(Line_In)和IOA[0~6] 端口可复用的10位ADC通道,可以直接通过引线(IOA[0~6])输入,用于将输入的模拟信号转换为数字信号。这样,MCU可在片内实现通道转换及A/D转换,既降低了硬件成本,又缩短了数据传送距离,提高了系统的抗干扰能力[3]。SPCE061A的A/D转换性能指标如表1所示。 核心控制单元将七个通道采集的模拟量通过A/D转换变成数字量存储在相应地址的内存中,然后根据要求将这些数据送到LED或上位机中显示,同时也可将大量采集的历史数据存储起来,用作以后分析。 表1 A/D转换性能指标

注:[1] LSB表示为最小有效单位,在VRT=3V的情况下,1LSB为2.93 mV。 [2] 此由最大采样率(Samplerate_max)得来,即Samplerate_max =ADC响应率/16=1536kHz/16=96kHz。
2.2 数据存储和读取单元 传统易失性RAM存储器在掉电的时候均会失去保存的数据,而源于只读存储器(ROM)技术的非易失性存储器不仅写入速度慢,而且只能有限次的擦写,写入时功耗大。为了准确、实时、快速的存储和传输大量数据信息,本文采用先进的铁电存储技术对数据存储和传输性能进行优化,选用扩展芯片SPBA01B和铁电存储器FM1808构成数据存储读取单元。 系统中所用的256K位铁电非易失性随机存储器FM1808能兼容RAM的一切功能和ROM的非易失性技术,是一种非易失性的快速读写存储器,其特性如下: (1) 结构容量为32 768×8位; (2) 100亿次以上的读写次数; (3) 掉电数据保持10年; (4) 写数据无延时。本文采用的铁电存储技术不仅能使系统快速无延时的读写数据,而且能使之在掉电情况下保存数据10年之久[4]。 由于SoC微处理器端口资源有限,因此本文采用可级连单片总线扩展芯片SPBA01B来扩展铁电存储器FM1808。SPBA01B是一款8bit总线扩展芯片,可扩展4MBytes的Memory 或25个IO口。SPBA01B支持各种Memory类型的扩展,在对Memory操作的时候,不需要直接操作Memory 的片选、读、写信号,只要对相应的寄存器写入命令、数据即可,数据存储读取单元内部结构图如图2所示。 系统只需对SPBA01B内部寄存器进行相应的设置,即可实现对SPBA01B的读、写以及片选信号线的自动控制。其中MC1决定AD总线是地址还是数据总线,MC0决定操作模式(读或写)。

图2 数据存储和读取单元内部结构图
2.3 LED显示单元 该单元由三片8-BIT串行输入/串并行输出移位寄存器74HC595A和三片LED构成。 传统的多路数据采集系统常常借助于多路开关实现数据分时输入,MCU将数据处理完毕后利用并行I/O口将结果存储、显示。这样系统结构复杂,电路连线多,工作可靠性及稳定性差[5]。因此本文设计了串行接口电路扩展外围器件,使得接口电路简单,信号获取质量高,稳定性及可靠性大大提高。 微处理器将采集的数据(包含通道号和电压值)通过I/O端口IOB0串行输入到第一片74HC595A中,然后通过端口IOB2(连接到每片74HC595A“SHIFT CLOCK”引脚)来控制数据在三片74HC595A中的移位。当发送完一个通道采集的信息(即24bit数据)后,再用端口IOB1(连接到每片74HC595A“LATCH CLOCK”引脚)锁存数据到3个LED中显示(每片74HC595A的引脚“QA至QH”连接一个LED),扩展移位寄存器74HC595A电路图如图3所示。

图3 扩展移位寄存器74HC595A电路图
2.4 数据上传单元 该单元由RS232驱动芯片MAX232构成。 微处理器SPCE061A的I/O端口IOB10和IOB7(内置串口)负责数据的发送与接受,其波特率可达114841bps。为了使微处理器SPCE061A的TTL串行接口与上位机RS232C串行接口正常通讯,本系统采用RS232驱动芯片MAX232来转换电平,实现通讯功能。
3 基于SoC技术的多通道数据采集系统软件设计
系统软件采用C语言和汇编语言混合编写,程序流程如图4所示。 系统软件采用模块化结构,主要由主模块、A/D转换模块、LED显示模块、数据发送模块、数据存储模块和数据读取模块构成,便于系统软件的修改和维护。

图4 系统软件流程图
系统主模块主要完成微处理器SPCE061A的初始化,并设置系统时钟和中断字,以及调用A/D转换模块,然后根据不同的按键转入相应的中断程序,完成对各个功能模块的调用,实现不同的功能。其中多通道A/D转换程序如下所示: R1 = 0x0001 L_AD: [P_ADC_mux_Ctrl] = R1 //选择通道LINE_IN为IOA0 R1 = 0x0003 //允许A/D转换 [P_ADC_Ctrl] = R1 R1 = [P_ADC_mux_Ctrl] //读寄存器[P_ADC_MUX_Ctrl]的B15位 TEST R1,0x8000 //判断是否转换完毕 JZ L_AD //否,继续转换 R1 = [P_ADC_mux_data] //是,则读出[P_ADC_MUX_DATA]转换结果 R1=R1 lsr 4 R1=R1 lsr 2 [AD1]=r1 通过模拟量输入口LINE_IN输入电压值,再通过读取P_ADC_MUX_Data单元可以获得10位A/D转换的数据。从该单元读取数据后,又会使RDY自动清“0”来重新开始进行A/D转换。若未读取P_ADC_MUX_Data单元中的数据,RDY仍保持为“1”,则不会启动下一次的A/D转换。
4 结语
本文基于SoC技术设计了一种多通道数据同步采集系统,通过模块化设计,系统把各功能部件集成在一个芯片里,内部采用总线结构,减少了各功能部件之间的连线,提高了其可靠性和抗干扰能力;另外,系统采用铁电存储技术扩展了存储单元容量,弥补了数据存储时间短的问题。该系统可在复杂的工业现场等环境中稳定、实时采集多路模拟信号,并实现数据长时间存储和显示。
|