位置:51电子网 » 技术资料 » 嵌入式系统

基于Lonworks总线的嵌入式智能节点的设计

发布时间:2008/8/27 0:00:00 访问次数:482

  1 前言

  lonworks现场总线是美国echelon公司推出的局部操作网络,它具有统一性、开放性、互操作性及支持多种通信介质等优良性能,是当今最流行的现场总线之一。但是由于lonworks控制节点的核心神经元芯片(neuron chip)的应用处理能力相对较弱,因而对于复杂的应用常使用主从处理器结构,主处理器完成用户的应用功能,而把neuron芯片作为通信协处理器。由于可以提高了节点的处理能力,节省资金和开发时间,因此,具有多功能的通用嵌入式主处理器具有很好的应用前景。本文采用的msp430f149主处理器是ti公司基具有较高的集成度的芯片,简化了应用系统的硬件设计,适合作为多用途智能节点。

  2 shortstack的介绍和实现

  2.1 shortstack的结构

  shortstack微服务器是echelon公司提供的一套开发包,其结构图如下:

  图1 shortstack结构图

  由图可看到,主处理器与shortstack 微服务器通信通过shortstack api函数来实现,通常使用其中的5个,loninit(),loneventhandler(),lonpropagatenv(),lonpollnv()和lonsendservicepin()。shortstack micro server,运行shortstack固件,运行lontalk协议的1~6层;主处理器运行sci串口驱动程序,运行shortstack api函数,处理与lonworks其他节点通信;主处理器应用部分调用shortstack api函数。主处理器设备的接口支持文件,由neuron c model file 通过使用shortstack向导来产生,产生数据表定义网络变量和收发器参数。而model file只需要声明网络变量nvs,配置属性cps和功能模块fbs,因此,可以不需要熟悉neuron c。

  串行驱动程序为主处理器和从处理器之间提供一个独立的接口。整个串行驱动程序由两部分构成:上层驱动程序为主应用程序提供一个接口;底层驱动程序完成与神经元芯片的硬件接口。上层和底层驱动之间的数据交换通过缓冲队列完成。底层驱动程序与从处理器的通讯包括sci上传和sci下传两类,sci上传是数据由神经元芯片上传到主处理器;sci下传是数据由主处理器下传到神经元芯片。

  2.2 shortstack的软件实现

  采用提供的neuron c模板事例修改编写。主要修改ldvsci.h和ldvsci.c中与msp430f149处理器相关的语句。

  在ldvsci.h中,修改为:

  #define enable_rx_tx() (me1 | = utxe0+urxe0)

  #define enable_tx_isr() (ie1 |= 0x80)

  #define enable_tx_complete_isr() (ifg1|=0x80) //usart0发送标志

  #define enable_rx_isr() (ie1|= 0x40) //enable sci receive interrupt

  #define disable_tx_isr() (ie1 &= ~0x80)

  #define disable_tx_complete_isr() (ifg1 &= ~0x80) // usart0发送标志复位

  #define disable_rx_isr() (ie1 &= ~0x40)

  #define check_rts() (p2out& 0x02) // check rts

  #define check_cts() (p2in& 0x01) // check cts

  #define assert_rts() (p2out &= ~0x02) // assert rts

  #define deassert_rts() (p2out|= 0x01) // deassert rts

  #define deassert_hrdy() (p2out |= 0x04) // deassert _hrdy

  #define assert_hrdy() (p2out &= ~0x04) // assert _hrdy

  在ldvsci.h中,修改了void sysresetsci(void) ,void sysinit(void),

  void sysupdatewdt(void), @interrupt void rxint (void)以及@interrupt void txint (void)中与msp430f149相关的程序。

  其他文件做少许改变,其中platform.h定义了big_endian and little_endian的区别,对应于哈佛结构和冯.诺伊曼体系结构。由于msp430f149核是冯.诺伊曼体系结构的,所以shortstack需用little_endian(即高字节存在高位地址)。

  2.3 shortstack的硬件件实现

  从处理器(如图2)采用tp/ft-10f控制模块,该模块由微型电路板构成, 包括一个3150 芯片、一块闪存、一个通信收发器、电源连接器、i/o 口和网络接口, 其中io_0~io_10 为神经元芯片3150 的11 个i/o 管脚用于对控制设备的连接, dataa 和datab 是ftt- 10收发器与网络的连接口,它能够将主处理器经过处理输出的数据发送到lon 总线,也可以将lon 总线上的消息传送给主处理器。

  主处理器与神经元芯片之间的通信采用sci模式。sci接口是一个半双工串行异步通信接口,通信的格式是:一个起始位,8个数据位和一个停止位(lsb在先)。通信模式的选择由io3确定,io3接地选择sci通信模式。io5、io6则用来选择通讯速率。

  3 μcos_ⅱ的移植

  μcos_ⅱ的全部源代码,共16个文件。移植工作涉及的源文件分为三部分:与处理器

  1 前言

  lonworks现场总线是美国echelon公司推出的局部操作网络,它具有统一性、开放性、互操作性及支持多种通信介质等优良性能,是当今最流行的现场总线之一。但是由于lonworks控制节点的核心神经元芯片(neuron chip)的应用处理能力相对较弱,因而对于复杂的应用常使用主从处理器结构,主处理器完成用户的应用功能,而把neuron芯片作为通信协处理器。由于可以提高了节点的处理能力,节省资金和开发时间,因此,具有多功能的通用嵌入式主处理器具有很好的应用前景。本文采用的msp430f149主处理器是ti公司基具有较高的集成度的芯片,简化了应用系统的硬件设计,适合作为多用途智能节点。

  2 shortstack的介绍和实现

  2.1 shortstack的结构

  shortstack微服务器是echelon公司提供的一套开发包,其结构图如下:

  图1 shortstack结构图

  由图可看到,主处理器与shortstack 微服务器通信通过shortstack api函数来实现,通常使用其中的5个,loninit(),loneventhandler(),lonpropagatenv(),lonpollnv()和lonsendservicepin()。shortstack micro server,运行shortstack固件,运行lontalk协议的1~6层;主处理器运行sci串口驱动程序,运行shortstack api函数,处理与lonworks其他节点通信;主处理器应用部分调用shortstack api函数。主处理器设备的接口支持文件,由neuron c model file 通过使用shortstack向导来产生,产生数据表定义网络变量和收发器参数。而model file只需要声明网络变量nvs,配置属性cps和功能模块fbs,因此,可以不需要熟悉neuron c。

  串行驱动程序为主处理器和从处理器之间提供一个独立的接口。整个串行驱动程序由两部分构成:上层驱动程序为主应用程序提供一个接口;底层驱动程序完成与神经元芯片的硬件接口。上层和底层驱动之间的数据交换通过缓冲队列完成。底层驱动程序与从处理器的通讯包括sci上传和sci下传两类,sci上传是数据由神经元芯片上传到主处理器;sci下传是数据由主处理器下传到神经元芯片。

  2.2 shortstack的软件实现

  采用提供的neuron c模板事例修改编写。主要修改ldvsci.h和ldvsci.c中与msp430f149处理器相关的语句。

  在ldvsci.h中,修改为:

  #define enable_rx_tx() (me1 | = utxe0+urxe0)

  #define enable_tx_isr() (ie1 |= 0x80)

  #define enable_tx_complete_isr() (ifg1|=0x80) //usart0发送标志

  #define enable_rx_isr() (ie1|= 0x40) //enable sci receive interrupt

  #define disable_tx_isr() (ie1 &= ~0x80)

  #define disable_tx_complete_isr() (ifg1 &= ~0x80) // usart0发送标志复位

  #define disable_rx_isr() (ie1 &= ~0x40)

  #define check_rts() (p2out& 0x02) // check rts

  #define check_cts() (p2in& 0x01) // check cts

  #define assert_rts() (p2out &= ~0x02) // assert rts

  #define deassert_rts() (p2out|= 0x01) // deassert rts

  #define deassert_hrdy() (p2out |= 0x04) // deassert _hrdy

  #define assert_hrdy() (p2out &= ~0x04) // assert _hrdy

  在ldvsci.h中,修改了void sysresetsci(void) ,void sysinit(void),

  void sysupdatewdt(void), @interrupt void rxint (void)以及@interrupt void txint (void)中与msp430f149相关的程序。

  其他文件做少许改变,其中platform.h定义了big_endian and little_endian的区别,对应于哈佛结构和冯.诺伊曼体系结构。由于msp430f149核是冯.诺伊曼体系结构的,所以shortstack需用little_endian(即高字节存在高位地址)。

  2.3 shortstack的硬件件实现

  从处理器(如图2)采用tp/ft-10f控制模块,该模块由微型电路板构成, 包括一个3150 芯片、一块闪存、一个通信收发器、电源连接器、i/o 口和网络接口, 其中io_0~io_10 为神经元芯片3150 的11 个i/o 管脚用于对控制设备的连接, dataa 和datab 是ftt- 10收发器与网络的连接口,它能够将主处理器经过处理输出的数据发送到lon 总线,也可以将lon 总线上的消息传送给主处理器。

  主处理器与神经元芯片之间的通信采用sci模式。sci接口是一个半双工串行异步通信接口,通信的格式是:一个起始位,8个数据位和一个停止位(lsb在先)。通信模式的选择由io3确定,io3接地选择sci通信模式。io5、io6则用来选择通讯速率。

  3 μcos_ⅱ的移植

  μcos_ⅱ的全部源代码,共16个文件。移植工作涉及的源文件分为三部分:与处理器

相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!