CN103136140A - 一种用于数控总线通讯板的数据读写装置和方法 - Google Patents

一种用于数控总线通讯板的数据读写装置和方法 Download PDF

Info

Publication number
CN103136140A
CN103136140A CN2011103988495A CN201110398849A CN103136140A CN 103136140 A CN103136140 A CN 103136140A CN 2011103988495 A CN2011103988495 A CN 2011103988495A CN 201110398849 A CN201110398849 A CN 201110398849A CN 103136140 A CN103136140 A CN 103136140A
Authority
CN
China
Prior art keywords
gpmc
bus communication
module
data read
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011103988495A
Other languages
English (en)
Inventor
于东
胡毅
林立明
秦承刚
陆小虎
陈龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Original Assignee
SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd filed Critical SHENYANG HIGH-END COMPUTER NUMERICAL CONTROL TECHNOLOGY Co Ltd
Priority to CN2011103988495A priority Critical patent/CN103136140A/zh
Publication of CN103136140A publication Critical patent/CN103136140A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明涉及嵌入式技术领域,具体的说是一种用于数控总线通信板卡的数据读写装置和方法。本发明的主控板通过主控板上的GPMC与总线通信板卡相连,上位机通过GPMC读写总线通信板卡上的存储器件,完成上位机命令的发送以及总线反馈数据的接收;所述总线通信板卡,通过总线通信板卡上的GPMC与主控板相连。本发明在方法上采用Linux内核模块的编程模型,包括模块初始化,完成GPMC配置操作;中断服务例程,完成GPMC读写操作;模块清除处理,完成GPMC释放操作;编译成可动态加载的内核模块;对模块进行加载和卸载。本发明硬件设计简单,编程模型灵活,通用性强,灵活性好。

Description

一种用于数控总线通讯板的数据读写装置和方法
技术领域
本发明涉及嵌入式技术领域,具体的说是一种用于数控总线通信板卡的数据读写装置和方法。 
背景技术
高速、高精、开放式与智能化是数控技术的发展趋势,传统基于模拟接口的数控系统因其单向通信及存在干扰等问题,越来越凸显出局限性。而基于现场总线的数控系统因具有分布式控制及全数字通信等优点,能满足高速、高精、开放式与智能化的控制需求。基于现场总线的数控系统结构如图1所示。数控系统中的主要部件包括数字控制器、伺服驱动器以及IO设备等。现场总线的主设备以总线通信板卡的形式插入数控装置,从设备一般直接在伺服驱动器的硬件板上实现,主设备和设备通过现场总线进行通信。总线通信板卡数据读写接口的实现方式依据平台而定,其在PC平台上的实现大多采用的是成熟的PCI接口,而在嵌入式平台上则很少有类似的成熟接口可用,即使有也需要复杂的电路或专用芯片的支持。如图2所示,USB接口的实现采用了USB协议芯片PDIUSBD11,而图3所示RS232接口的实现则采用了电平转换芯片MAX232,这些实现方法需要设计额外的接口电路、连线复杂、编程困难,通讯方式单一,难以满足多种多样的板级通讯需求。 
发明内容
为了克服现有的嵌入式平台常规接口电路复杂、编程困难的不足,本发明提供一种板级的数据读写方法,该方法不仅不需要专门的电路及协议芯片支持,而且编程模型简单,能方便地应用于板级通讯。 
本发明为实现上述目的所采用的技术方案是:一种用于数控总线通讯板的数据读写装置,主控板通过主控板上的GPMC与总线通信板卡相连,上位机通过GPMC读写总线通信板卡上的存储器件,完成上位机命令的发送以及总线反 馈数据的接收;所述总线通信板卡,通过总线通信板卡上的GPMC与主控板相连。 
所述所述主控板包括处理器、以太网接口、USB、GPMC、串口、FLASH、SD卡接口、SDRAM、LCD接口、VGA。 
所述总线通信板卡包括FPGA芯片、GPMC、以太网接口。 
所述上位机或主控板采用Linux操作系统,对Linux内核源码进行修改。 
一种用于数控总线通讯板的数据读写方法,采用Linux内核模块的编程模型,包括以下步骤: 
模块初始化,完成GPMC配置操作; 
中断服务例程,完成GPMC读写操作; 
模块清除处理,完成GPMC释放操作; 
编译成可动态加载的内核模块; 
对模块进行加载和卸载。 
本发明具有以下优点: 
1.硬件设计简单。不需要额外的电路或芯片支持,具有规范的接口。 
2.编程模型灵活。只需要配置好接口的工作模式,即可像读写普通存储器一样进行板级数据通讯。 
3.通用性强。支持多种通讯模式:同步/异步;地址数据复用/非复用。支持众多外部存储器件:异步方式的类SRAM存储器以及专用集成电路器件;NORflash器件;NAND器件;Pseudo-SRAM器件等。 
4.灵活性好。本发明提供了用于参数配置的完备的API,用户可以通过应用接口或系统调用对读写接口进行定制,使其满足实际的数据通讯需求,获得最佳效果。 
附图说明
图1为本发明应用的数控系统结构图; 
图2为现有技术对USB接口的一种实现; 
图3为现有技术对串行接口的一种实现; 
图4为本发明应用的数控系统硬件结构图; 
图5为本发明应用的GPMC的工作原理图; 
图6为本发明应用的OMAP3530主控板GPMC模块的电路原理图; 
图7为本发明应用于SSB-III总线通信板卡的GPMC接口原理图; 
图8为本发明中编程模型的模块初始化流程图; 
图9为本发明应用的GPMC读时序图; 
图10为本发明应用的GPMC写时序图; 
图11为本发明中编程模型的中断服务流程图; 
图12为本发明中编程模型的模块清除流程图。 
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。 
如图4所示,为本发明所涉及的数控系统硬件结构图,由OMAP3530主控板和SSB-III总线通信板卡构成。OMAP3530主控板包括以下模块:OMAP3530处理器、以太网接口、USB、GPMC、串口、FLASH、SD卡接口、SDRAM、LCD接口、VGA等;SSB-III总线通信板卡主要由FPGA芯片、GPMC、以太网接口等构成。两板之间通过GPMC接口进行通信。本发明所应用的现场总线为SSB-III(Synchronous Serial Bus-III,第三代同步串行总线)数控总线。严格以OMAP3530主控板的机械尺寸为标准,确定SSB-III总线通信板卡的整板大小、通孔位置、GPMC接口位置、电源接口位置等参数。 
如图5所示,为GPMC的工作原理图,GPMC全称为general-purpose memory controller,即通用存储控制器,是OMAP平台处理器特有的外设接口。它是一个16位的外部存储控制器,可以为NOR flash、NAND flash、pSRAM等传统存储器件提供读写接口。包括六个功能模块:(1)L3互连端口接口;(2)地址译码器、GPMC配置寄存器、片选配置寄存器;(3)访问引擎;(4)预取和写置入引擎;(5)纠错代码引擎;(6)外部存储器端口接口。 
如图6所示,为OMAP3530主控板GPMC模块的电路原理图,包括数据、地址、以及控制信号。完整的GPMC信号包括:GPMC_A[10:1],GPMC_D[15:0], GPMC_NCS[7:0],GPMC_LK,GPMC_NADV_ALE,GPMC_NOE,GPMC_NWE,GPMC_NBE0_CLE,GPMC_NBE1,GPMC_NWP,GPMC_WAIT[3:0]。 
如图7所示,为本发明方法中应用于SSB-III总线通信板卡的GPMC接口原理图,接口信号与OMAP3530主控板的GPMC接口一一对应。实际实现中使用到的信号包括地址线GPMC_A[10:1],数据线GPMC_D[15:0],并且对控制信号做了精简,只用到nCE,nOE,nWE。 
为了能方便地配置并控制GPMC,需要对Linux内核源程序进行修改,具体包括:(1)导出GPMC时序配置函数,即在arch/arm/mach-omap2/gpmc.c中添加语句EXPORT_SYMBOL(gpmc_cs_set_timings);(2)增加GPMC时钟频率导出函数,即在在arch/arm/mach-omap2/gpmc.c中添加show_gpmc_clk函数定义,并导出符号EXPORT_SYMBOL(show_gpmc_clk);(3)增加GPMC时钟频率导出函数的声明,即在arch/arm/plat-omap/include/mach/gpmc.h中增加extern int show_gpmc_clk(int cs,const struct gpmc_timings*t); 
编程模型采用Linux内核模块的编写方式,包括三部分:模块初始化,中断服务例程,模块清除处理,即init_module、isr_schedule、以及cleanup_module。 
模块初始化流程如图8所示,GPMC参数配置的关键步骤在这一流程中完成,图中加标注的若干步骤具体实施方法如下: 
[1]调用gpmc_save_config(),保存当前与GPMC配置相关的寄存器值; 
[2]查询是否存在已使能的片选,通过清除GPMC_CS_CONFIG7中的相应比特位,将该片选禁用; 
[3]调用my_gpmc_iit(),包含以下步骤: 
(1)配置CONTROL_PADCONF_GPMC_nCS3,使对应引脚工作在模式0; 
(2)配置CONTROL_PADCONF_GPMC_nCS7,使对应引脚工作在模式0; 
(3)配置CM_FCLKEN_PER和CM_ICLKEN_PER,使能GPIO的时钟绑定; 
(4)配置GPMC_SYSCONFIG,使GPMC工作在“smart idle mode”; 
(5)配置GPMC_CONFIG,使GPMC工作在限址模式(2Kbyte); 
(6)为片选3申请地址空间,并对申请到的地址进行ioremap; 
(7)配置GPMC_CS_CONFIG1,使GPMC读写均工作在同步方式,devicesize=16bit,devicetype=NOR,地址/数据非复用; 
(8)调用gpmc_cs_set_timings(),时序参数根据图9,图10而定; 
[4]调用request_gpio_pins(),为复位,中断,GPMC时钟三个信号申请GPIO,并初始化; 
[5]调用mcb_reset(),在复位信号GPIO上给出50ms的低电平脉冲; 
[6]调用setup_ssb3_irq(),为中断引脚申请中断号,设置中断信号触发类型为下降沿触发,将中断号和中断函数进行绑定,使能中断; 
[7]关闭板卡,设置站点类型、从站个数、通信周期长度、从站地址等参数,使能板卡; 
[8]释放GPMC片选,恢复GPMC系统配置,释放GPIO,返回-1; 
中断服务函数流程如图11所示,包括禁止中断线、获取总线通信板卡的反馈数据并进行行规解析、获取主控板上位机命令并写回总线通信板卡、清除中断标志位、使能中断线。其中涉及到GPMC操作的步骤如下: 
[1]采用读函数_raw_readw(),分两次读取SSB-III总线通信板卡存储器某个值(假设地址偏移量为offset)的高、低16位,然后拼接成完整的数据,操作代码示意如下: 
high=_raw_readw(gpmc_cs_base+offset+2); 
low=_raw_readw(gpmc_cs_base+offset); 
data=low+(high<<16); 
[2]将数据按高低16位进行分解,然后调用写函数_raw_writew(),将数据写回SSB-III总线通信板卡(假设地址偏移量为offset),操作代码示意如下: 
low=(u16)data; 
high=(u16)(data>>16); 
_raw_writew(low,gpmc_cs_base+offset); 
_raw_writew(high,gpmc_cs_base+offset+2); 
模块清除处理流程如图12所示,包括清除总线控制板hal组件、关闭SSB-III总线控制板、释放中断线、释放GPMC片选、恢复GPMC初始系统配置、释放GPIO,每个步骤对应的函数调用如下: 
[1]hal_exit(comp_d); 
[2]rt_release_rq(irq); 
[3]gpmc_cs_free(MY_CS); 
[4]gpmc_restore_config(); 
[5]gpio_free(gpio_rst);gpio_free(gpio_int); 
软件编写完毕之后,将其编译成可动态加载的内核模块。在操作系统命令行环境下使用模块插入、移除命令,可以对模块进行加载和卸载,下面给出具体的操作步骤: 
模块加载: 
[1]操作系统命令行下使用cd命令切换到模块所在目录 
[2]使用insmod命令加载模块,具体格式为“insmod模块名” 
模块卸载: 
[1]操作系统命令行下使用cd命令切换到模块所在目录 
[2]使用rmmod命令卸载模块,具体格式为“rmmod模块名”。 

Claims (5)

1.一种用于数控总线通讯板的数据读写装置,其特征在于,主控板通过主控板上的GPMC与总线通信板卡相连,上位机通过GPMC读写总线通信板卡上的存储器件,完成上位机命令的发送以及总线反馈数据的接收;所述总线通信板卡,通过总线通信板卡上的GPMC与主控板相连。
2.根据权利要求1所述的一种用于数控总线通讯板的数据读写装置,其特征在于,所述所述主控板包括处理器、以太网接口、USB、GPMC、串口、FLASH、SD卡接口、SDRAM、LCD接口、VGA。
3.根据权利要求1所述的一种用于数控总线通讯板的数据读写装置,其特征在于,所述总线通信板卡包括FPGA芯片、GPMC、以太网接口。
4.根据权利要求1所述的一种用于数控总线通讯板的数据读写装置,其特征在于,所述上位机或主控板采用Linux操作系统,对Linux内核源码进行修改。
5.一种用于数控总线通讯板的数据读写方法,其特征在于,采用Linux内核模块的编程模型,包括以下步骤:
模块初始化,完成GPMC配置操作;
中断服务例程,完成GPMC读写操作;
模块清除处理,完成GPMC释放操作;
编译成可动态加载的内核模块;
对模块进行加载和卸载。
CN2011103988495A 2011-12-05 2011-12-05 一种用于数控总线通讯板的数据读写装置和方法 Pending CN103136140A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011103988495A CN103136140A (zh) 2011-12-05 2011-12-05 一种用于数控总线通讯板的数据读写装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011103988495A CN103136140A (zh) 2011-12-05 2011-12-05 一种用于数控总线通讯板的数据读写装置和方法

Publications (1)

Publication Number Publication Date
CN103136140A true CN103136140A (zh) 2013-06-05

Family

ID=48495984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011103988495A Pending CN103136140A (zh) 2011-12-05 2011-12-05 一种用于数控总线通讯板的数据读写装置和方法

Country Status (1)

Country Link
CN (1) CN103136140A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761207A (zh) * 2013-06-25 2014-04-30 严俊 一种3d虚拟设备测控系统
CN104656563A (zh) * 2013-11-18 2015-05-27 沈阳高精数控技术有限公司 一种脉冲型数控装置及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN200947617Y (zh) * 2006-08-18 2007-09-12 上海工业自动化仪表研究所 一种Zigbee短程无线网关
CN101729339A (zh) * 2008-10-31 2010-06-09 沈阳中科博微自动化技术有限公司 现场总线通信卡
CN101963811A (zh) * 2010-10-29 2011-02-02 深圳市大族激光科技股份有限公司 通讯控制器及基于该通讯控制器的工业控制系统
CN201867627U (zh) * 2010-10-12 2011-06-15 中国矿业大学 基于can总线的数控机床故障信号检测系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN200947617Y (zh) * 2006-08-18 2007-09-12 上海工业自动化仪表研究所 一种Zigbee短程无线网关
CN101729339A (zh) * 2008-10-31 2010-06-09 沈阳中科博微自动化技术有限公司 现场总线通信卡
CN201867627U (zh) * 2010-10-12 2011-06-15 中国矿业大学 基于can总线的数控机床故障信号检测系统
CN101963811A (zh) * 2010-10-29 2011-02-02 深圳市大族激光科技股份有限公司 通讯控制器及基于该通讯控制器的工业控制系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103761207A (zh) * 2013-06-25 2014-04-30 严俊 一种3d虚拟设备测控系统
CN103761207B (zh) * 2013-06-25 2016-08-10 严俊 一种3d虚拟设备测控系统
CN104656563A (zh) * 2013-11-18 2015-05-27 沈阳高精数控技术有限公司 一种脉冲型数控装置及方法
CN104656563B (zh) * 2013-11-18 2017-06-09 沈阳高精数控智能技术股份有限公司 一种脉冲型数控装置及方法

Similar Documents

Publication Publication Date Title
CN102141971B (zh) 具有大容量存储功能的1553b硬件定时通讯模块
CN111913822B (zh) 一种基于amp架构的核间通信方式
CN105404538A (zh) 一种fpga的加载和升级目标代码的装置及方法
KR20170141205A (ko) Dsp 엔진 및 향상된 컨텍스트 스위치 기능부를 구비한 중앙 처리 유닛
US20110314323A1 (en) Semiconductor device and data processor
CN103870429A (zh) 基于嵌入式gpu的高速信号处理板
US20160306634A1 (en) Electronic device
TWI515553B (zh) 包括可組配最大處理器電流之用於能源效率及節能之方法、裝置及系統
WO2017112529A1 (en) Configuration arbiter for multiple controllers sharing a link interface
CN109992555A (zh) 一种供多路服务器共用的管理板卡
CN105335548A (zh) 一种用于ice的mcu仿真方法
CN111190855A (zh) 一种fpga多重远程配置系统及方法
CN102622257A (zh) 电表在线自更新方法及其装置
CN103246628A (zh) Smi接口管理方法及可编程逻辑器件
CN112291027A (zh) 时钟选择方法、装置、设备及计算机可读存储介质
CN110399328B (zh) 一种板载图形处理器控制方法与装置
CN102043754A (zh) 一种提高星载dsp加载引导可靠性的方法
CN102880235A (zh) 基于龙芯2f cpu的单板计算机及其复位管理和使用方法
CN105892350B (zh) 在微控制器单元和主处理器之间通信的电子设备及其方法
CN114281751B (zh) 芯片系统
CN113656076A (zh) 一种基于硬件复用通道的bios启动方法及装置
CN204423297U (zh) 一种用以实现系统控制和电源管理的片上系统
CN103136140A (zh) 一种用于数控总线通讯板的数据读写装置和方法
CN105824650B (zh) 计算机系统、可适性休眠控制模块及其控制方法
CN111124991A (zh) 一种基于处理单元互联的可重构微处理器系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 110171 16-2

Applicant after: SHENYANG GAOJING NUMERICAL CONTROL INTELLIGENT TECHNOLOGY CO., LTD.

Address before: Nanping Road in Dongling District of Shenyang city of Liaoning Province, No. 16 110171

Applicant before: Shenyang High-End Computer Numerical Control Technology Co., Ltd.

COR Change of bibliographic data
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20130605