网站首页 | 经济学论文 | 证券金融 | 管理学 | 会计审计 | 法学论文 | 医药学论文 | 社会学论文 | 教育论文 | 计算机 | 艺术论文 | 哲学论文 | 财务管理 |
写论文网
  • 发展战略论文
  • 国际经济论文
  • 行业经济论文
  • 新经济学论文
  • 中国经济论文
  • 国际贸易论文
  • 地方战略论文
  • 您的位置:写论文网 > 经济学论文 > 国际经济论文 > 【TMPN3150与TLC0832的两种接... 正文 2019-12-25 07:26:42

    【TMPN3150与TLC0832的两种接口实现方法】 !N

    相关热词搜索:

    TMPN3150与TLC0832的两种接口实现方法

    TMPN3150与TLC0832的两种接口实现方法 关键词:Neuron芯片 TMPN3150 A/D芯片 TLC0832 1 引言 在传统的工业控制中,现场的传感器与控制器之间总是以4~20mA的直流 电流或1-5V的直流电压来传递信息的。随着工业控制技术的不断发展,工业控制 系统正向着数字化、智能化、网络化和开放化的方向发展。因此,模拟传输渐渐 被数字传输所取代。而现场总线(FieldBus)则可以很好地适应工业控制技术发 展的趋势,是对成熟控制系统结构的根本变革。LonWorks总线是美国Echelon公 司于1991年提出的一种现场总线,它采用面向对象的设计方法,通过网络变量把 网络通信设计简化为参数设置。LonWorks技术的核心是神经元(Neuron)芯片, 这个神经元片中有三个8位的CPU,它们不仅可以用作LonWorks总线的通信处理 器,而且还可以用作采集和控制的通用处理器。本文介绍具有串行口的A/D芯片 TLC0832与作为通用处理器的神经元芯片的两种接口实现方法。

    2 Neuron芯片和TLC0832的基本特性 2.1 Neuron芯片的基本特性 LonWorks网络是由节点构成的,每个节点包括一片Neuron芯片、传感和 控制设备、收发器和电源。其中,Neuron芯片是节点的核心,它具有3个CPU:
    CPU-1是介质访问处理器,CPU-2是网络处理器,CPU-3是应用处理器。Neuron 芯片家族中的最初成员是Neuron 3120xx和Neuron 3150芯片。3120xx芯片中包括 EEPROM、RAM、ROM存储器,而3150芯无内部ROM,但拥有访问外部存储器 的接口,其寻址空间可达64kB,可用于开发更为复杂的应用系统。

    Neuron芯片通过11个引脚(IO-0~IO-10)与外部硬件相连。这11个引脚可 定义34种I/O对象,用户可根据实际应用需要在应用程序中定义不同的I/O对象, 如直接的I/O对象、并行I/O对象、串行I/O对象和定时器/计数器输入/输出对象等。

    2.2 TLC0832的基本特性 TLC0832是八位逐次逼近模数转换器,它有两个可选择的输入通道。

    TLC0832的特点如下:*8位分辨率;

    *可和微处理器接口或独立使用;

    *可满量程工作或使用5V基准电源;

    *具有单通道或多路器选择的双通道,并可选择单端或差分输入;

    *采用单5V供电,输入范围为0~5V;

    *输入和输出与TTL和CMOS兼容;

    TLC0832处于工作状态时,置CS端方可启动转换,并使所有的逻辑电路使 能。CS在整个转换过程中必须置为低电平,接着从处理器接受一个时钟。当一 个时钟的时间间隔被自动插入后,可以使多种转换器选定的通道稳定。而当DO 脱离高阻状态时,可提供一个时钟的时间间隔的前导低电平,以使多路器稳定。

    SAR比较器用于对电阻梯形网络输出的逐次信号和输入模拟信号进行比较,比较 器输出则用于表示刘大于还是小于电阻梯形网络的输出。在转换过程中,转换的 数据同时从DO端输出,并以最高位(MSB)开头。在经过8个时钟后,转换完成, CS变高,内部所有寄存器清零,此时,输出电路变为高阻状态。如果希望开始 另一个转换,CS必须有一个从高到低的跳变,且后面应紧跟着输入地址数据。

    TLC0832的输入配置可在多路器寻址时序中进行,多路器地址通过DI端移 入寄存器。用多路器地址选择模拟输入通道的方法如表1所列,其工作时序图如 图1所示。

    表1 选择模拟输入通道 3 Neuron和TLC083的两种接口方法 3.1 基于Neuron芯片Neurowire I/O模式方案 如上所述,Neuron芯片TMPN3150的11个I/O脚有多种I/O模式,这里用的 是Neurowire模式。这种方式把TMPN3150的I/O脚定义为Neurowire I/O对象,即 同步全双工串行通信模式,它每次最多可传送255比特的数据流。Neurowire I/O 对象可配置为主控方式和被控方式。当为主控方式时,IO8为移位时钟信号输出 端,IO9为串行数据输出端,IO10为串行数据输入端,IO0~IO7可任选一个作为片选信号线。若Neuron芯片的输入时钟为10MHz时,则IO8的输出时钟频率可选 为1、10或20kb/s;
    当为被控方式时,IO8为移位时钟信号输入端,IO0~IO7可任 选一个作为时间溢出信号引脚。

    a. 方法1的硬件实现 基于Neuron芯片的Neurowire I/O模式的硬件电路如图2所示。图中,IO0 输出片选信号。图1中的输入只画了一路CH0,另一路CH1与CH0相同。当输入为 电压信号时,J断开;
    输入为电流信号时,J连通。

    b. 方法1的软件实现 神经元芯片的编程是采用Neuron C语言来完成的。Neuron C是专门为 Neuron芯片设计的编程语言,它有着丰富的函数库,可直接完成许多复杂的任务。

    基于Neuron芯片的Neurowire I/O模式的A/D接口程序如下:
    //////// IO Objection //////// //定义为Neurowire主模式,A/D芯片的主选信号由IO0输出初始化为1 IO-8 neurowire master select (IO-0) ioA2D;


    IO-0 output bit ioA2Dselect =1;

    IO-1 input bit start_adc;
    # pragma ignore_notused ioA2Dselect //////// function declare//////// unsigned long adc(unsigned long analog_addr);
    ////////function definition//////// //A/D转子函数 unsigned long adc(unsigned long analog-addr) //形参analog_addr传递要选择的通道,选择CH0时,analog_addr=0x06,选 择CH1时,analog_addr=0x07{ unsigned long adc_info;

    unsigned long digital_out;
    adc_info = (analog_addr 13);

    io_in(ioA2D,adc_info,16);
    //选择通道,同时接收转换的结果 digital_out=adc_info 0x0ff0;

    digital_out=digital_out 4;

    return digital_out;

    } 由于eurowire I/O对象是双向的,即输入、输出同时进行。因此,调用 io_in(ioA2D,adc_info,16)时启动了16位的双向数据传输,该命令可将adc_info 中的数以比特流的形式从IO-9输送到TLC0832,同可时通过IO10从TLC0832的 DO脚读入16位数并放入adc_info。由TLC0832的工作时序图(图1)可以看出, 接收到的16位数中的第5位到第12位就是转换结果,所以做了后面的处理。

    3.2 基于Neuron芯片的比特I/O模式方案 TMPN3150和TLC0832的第二种接口实现方法是把TMPN3150的I/O脚定 义为比特I/O对象,它可用以监控与Neuron芯片相连的I/O设备中某个引脚上的逻 辑状态,其中“0”为低电平,“1”为高电平。

    a. 方法2的硬件实现 方法2的硬件电路如图3所示。图中,输入通道只画了一路CH0,另一路CH1 与CH0相同。当输入为1-5V的电压信号时,J断开;当输入与4-20mA的电流信号时, J连通。

    b. 方法2的软件实现 Neuron C语言是从ANSI C中派生出来的,相对于ANSI C而言,它进一步 扩展了用以支持由Neuron芯片中的固件提供的各种运行特性。方法2的A/D接口程序如下:
    ////////IO Objection//////// //将IO脚定义为比特IO对象, IO-2 input bit io-do;
    IO-0 output bit cs;
    IO-3 output bit di;
    IO-1 output bit clk;

    ////////function declare//////// int adc(int adc-addr);

    ///////function definition////// //A/D转换子函数 int adc(int adc_addr) //形参analog_addr传递要选择的通道,选择CH0时,adc_addr=0x60;
    选择 CH1时,adc_addr=0x70// { int adc_inbit,digital_out=0;
    io_out(cs,0);
    io_out(di,0);
    for(i=0;i3;i++)//选择通道 { io_out(clk,0);
    adc_addr=adc_addr1;
    if(adc_inf0 0x80)==0x80io_out(di,1);
    else io_out(di,0);
    io_out(clk,1);
    } io_out(clk,0);
    //一个时钟的间隔 io_out(clk,1);
    //以使多路器稳定 for(i=0;i8;i++) //接收转换结果 { io_out(clk,0);
    if(io_in(io_do)= =1) { adc_inbit=1;
    adc_inbit=adc_inbit(7-i);
    digital_out=digital_out+adc_inbit;
    } io_out(clk,1);
    } io_out(cs,1) return digital_out;

    } 4 结束语 Neuron芯片不同于普通的微处理器,本文介绍的神经元芯片与A/D芯片 TLC0832的两种接口实现方法各有利弊,具体表现如下:(1)方法1是Neuron芯片所特有的,而方法2较通用,它不仅适用于Neuron 芯片,而且适用于各种有I/O脚的微处理芯片;

    (2)方法1的硬件要求比较严格,可选的I/O脚只有一个,即片选信号输 出脚,而方法2脚把几个与TLC0832相连的I/O脚视为普通的I/O脚,随便哪个I/O 脚都可与TLC0832相连(如果Neuron芯片的IO8、IO9或IO10已用,那只能选方法 2了);

    (3)方法1编程较短,但不但于调试,而方法2则编程较长,但较为直观, 而且便于调试;

    (4)方法1的CLK占空比和时钟速率较为稳定,而方法2的CLK占空比与 指令执行时间有关。对于常用单片机的人来说,方法2较易上手,则方法1则更专 业;
    方法2的硬件接法更灵活,但编程较长……总之,使用这两种方法应根据实 际情况灵活地作出选择。

    • 范文大全
    • 教案
    • 优秀作文
    • 教师范文
    • 综合阅读
    • 读后感
    • 说说
    【TMPN3150与TLC0832的两种接口实现方法】 !N》由(写论文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2019 写论文网 All Rights Reserved.