Linux2_6内核下同步串行通信驱动的开发与应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. Postg raduate R esea rch S ta tion of N on2seism ic S u rvey, B ureau of Geophysica l P rospecting, China N a tiona l Petroleum Corpora tion, Zhuozhou Hebei 072751, Ch ina)
2 L inux2. 6内核下 SSC驱动整体结构
L inux2. 6. 21内核源码没有提供 SSC接口的设备驱动程 序 ,本文针对于 AT91RM9200芯片的 SSC外设接口重新构建 SSC设备驱动 。 SSC驱动是字符设备驱动程序 ,它主要完成 以下工作 :
1)设计 SSC平台设备的注册函数 ; 2)设计 SSC的模块加载函数和卸载函数 ; 3)设计 SSC的 DMA传输模式和 read读函数 。 可将 SSC驱动程序分为 3 个层次 (如图 1 所示 ) 。最底 层由 at91 rm9200 _device. c文件获取了 SSC设备总线地址和 中断号 ,以及使能 SSC接口管脚 。 board2dk. c文件在 L inux系 统启动时注册了 SSC设备 ,以便上层 SSC设备驱动程序获取 SSC的硬件资源 。 at91_ssc. c文件实现了 SSC设备和 DMA 控 制器的初始化 、设备号和中断号的注册 、注销以及提供了用户 空间的 file_operations操作 (包括 open、read、ioctl和 close函数 操作 ) 。由于 AT91RM9200的 3个 SSC外围接口接收器 /发生 器用法类似 ,本文就仅介绍 SSC0接收器驱动程序设计 。
号。
static struct resource ssc0_resources[ ] = { [0 ] = {
首先通过 resource元素定义 SSC0的设备资源信息 。 ssc0 _resources[ 0 ]定义了 AT91RM9200 SSC0 外设映射到地址空 间的范围 ,从 AT91RM9200 _BASE_SSC0 ( 0xFFFD0000)开始 , 长度为 16 KB。 ssc0 _ resources [ 1 ]定义了 SSC0 设备的中断
当系统功能越来越多 ,使用操作系统就很有必要 。L inux 是开放源码的操作系统 ,因其具有高可靠性 、资源丰富 、免费 等优点 ,使得它在嵌入式领域越来越流行 [4 ] 。正是由于 L inux
开放源代码 ,使得众多的软件设计者不断为其更新和优化 。 至今为止 , L inux内核已经发展到 2. 6版本 ,与 L inux2. 4 内核 相比 ,它在性能 、安全性和设备模型等方面都作了极大的改 进 。而随着 L inux内核版本的升级 ,驱动程序的开发也要作 相应的修改 [ 5 - 6 ] 。
第 30卷第 3期 2010年 3月
计算机应用 Journal of Computer App lications
Vol. 30 No. 3 M ar. 2010
文章编号 : 1001 - 9081 (2010) 03 - 0850 - 04
L inux216内核下同步串行通信驱动的开发与应用
1 AT91RM9200同步串行控制器 SSC接口分析
AT91RM9200是一款高性能 、低功耗和低成本的嵌入式 ARM 微处理器 ,内部集成了丰富的系统资源和外设接口 ,被 广泛应用于各种工业控制系统中 。它提供了 3个同步串口控
收稿日期 : 2009 - 09 - 21;修回日期 : 2009 - 11 - 13。 作者简介 :仇洁婷 (1985 - ) ,女 (壮族 ) ,广西钦州人 ,硕士研究生 ,主要研究方向 :物探仪器 ; 陈儒军 ( 1973 - ) ,男 (土家族 ) ,贵州思南人 , 副教授 ,博士 ,主要研究方向 :物探仪器 ; 何展翔 (1962 - ) ,男 ,湖南平江人 ,教授级高级工程师 ,主要研究方向 :综合物化探采集处理解释方法 。
摘 要 :随着 ARM /DSP双核处理器在地球物理勘探仪器中的推广应用 ,双核间的通信成为实现这种双核处理器 系统的关键技术 。针对 L inux2. 6版本内核 ,详细介绍了基于 AT91TM9200 的 SSC同步串行通信设备驱动的模块化 、 分层次的设计架构 ,并在驱动中使用 DMA 传输模式 、分段缓存技术和修改 PDA 控制器优先级 。在此基础上给出了 AT91RM9200 /DSP56309双核的接口电路设计 。试验表明 ,在 AT91RM9200 /DSP56309双核中利用同步串行同步通信 的设计 ,能够使系统高效 、稳定 、快速地进行数据传输 ,从而使双核处理器能够很好地协同工作 。
针对上述分析 ,本文基于 ATM EL 公司 AT91RM9200 的 同步串行控制器 ( Serial Synchronous Controller, SSC) ,着重讨 论在 L inux2. 6. 21内核下如何开发和设计 SSC驱动程序 。最 后 ,以 DSP56309芯片作为数字信号处理器 ,以 AT91RM9200 芯片作为微控制器 ,采用 SSC作为 ARM 和 DSP之间的通信 接口 ,对 L inux2. 6. 21内核下的 SSC驱动程序进行测试和分 析。
第 3期
仇洁婷等 : L inux2. 6内核下同步串行通信驱动的开发与应用
8 51
制器 ( SSC) ,用于与外部器件的同步通信 。 SSC支持许多用 于音频及电信应用中常用的串行同步通信协议 ,如 I2S、短帧 同步和长帧同步等 。每个 SSC都有独立的发送器 、接收器及 一个时钟分频器 。发送器和接收器分别有三个接口 :数据信 号 TD /RD、时钟信号 TK /RK和帧同步信号 TF /RF。可编程 设定为自动启动或在帧同步信号检测到不同事件时启动 。 SSC的 可 编 程 高 电 平 及 两 个 32 位 专 用 外 设 数 据 控 制 器 ( Peripheral Data Controller, PDC)通道 (DMA 访问 ) ,可在没有 处理器干涉的情况下进行连续的高速率数据传输 [7 ] 。
图 1 SSC设备驱动的程序结构 2. 1 SSC驱动的 Platform 注册
L inux2. 6. 21 内 核 把 AT91RM9200 处 理 器 内 部 集 成 的 I2 C、SP I和看门狗等都归纳为平台设备 ,并由内核统一管理 。 平台设备用 p latform _device结构体来描述 ,包含其所用的资 源数量和指针 。 SSC作为 AT91RM9200处理器内部集成的外 设接口 ,需要通过 p latform _device进行注册 。AT91RM9200的 p latform 平 台 设 备 注 册 在 / arch / arm /mach2at91 / at91 rm9200 _ device. c文件中执行 。
Key words: serial synchronous communication; AT91RM9200; DSP56309; L inux2. 6
0 引言
随着地球物理勘探仪器在功耗 、性能和成本等方面要求 越来越高 ,嵌入式 ARM 处理器在地球物理勘探仪器领域的 应用也不 断 扩 大 [1 ] 。同 时 , 由 于 数 字 信 号 处 理 器 ( D igital Signal Processor, DSP) 在 数 字 滤 波 、快 速 傅 里 叶 变 换 ( Fast Fourier Transformation, FFT)和谱分析等方面具有明显的优越 性 ,使得它被广泛用于高精度数据运算和复杂数据处理的地 球勘探仪器中 [2 ] 。但是 DSP没有功能强大的操作系统 ,不适 合做系统控制 ,而这正好是 ARM 的强项 。由此可见 ,通过采 用 ARM 与 DSP的结合可充分发挥二者的优势 [3 ] ,从而提升 仪器的性能 。然而 ,这种 ARM /DSP双核处理器系统的关键 技术是如何实现双核之间的通信 ,以确保系统能够对信号进 行实时 、高效的传输和处理 。
关键词 :同步串行通信 ; AT91RM9200; DSP56309; L inux2. 6 中图分类号 : TP316 文献标志码 : A
D evelopm en t and applica tion of ser ia l synchronous comm un ica tion dr iver in L inux216
Q IU J ie2ting1, 4 , CHEN Ru2jun1, 2, 3 , HE Zhan2xiang4 , Q IU Kai2lin4
(1. School of Info2physics and Geom atics Eng ineering, Cen tral S outh U n iversity, Changsha Hunan 410083, China; 2. Postdoctora l S tation of Com pu ter S cience and Technology, Cen tral S outh U n iversity, Changsha Hunan 410083, Chiபைடு நூலகம்a; 3. Postdoctoral R esea rch S ta tion of B ureau of Geophysica l P rospecting, Ch ina N ationa l Petroleum Corpora tion, Z huozhou Hebei 072751, Ch ina;
Abstract: The communication between ARM and D igital Signal Processor (DSP) is a key factor in ARM /DSP dual core design w idely used in geophysics exp loration instrumentation. In this paper serial synchronous communication between AT91RM9200 /DSP56309 dual core p rocessors was realized and the modularized and hierarchical design of the SSC driver based on AT91TM9200 in L inux 2. 6 was introduced in detail. The DMA transm ission, multi2buffering and PDA controller p riority modification was used in the driving design. The SSC interface circuit imp lementation based on the design was also introduced. The experimental results show that the data transfer between AT91RM9200 /DSP56309 is rap id and steady, and so that the dual core p rocessors co2work very well.
仇洁婷 1, 4 ,陈儒军 1, 2, 3 ,何展翔 4 ,邱开林 4
(1. 中南大学 信息物理工程学院 ,长沙 410083; 2. 中南大学 计算机科学与技术博士后流动站 ,长沙 410083; 3. 中国石油集团东方地球物理勘探有限责任公司 博士后科研工作站 ,河北 涿州 072751;
4. 中国石油集团东方地球物理勘探有限责任公司 综合物化探研究生工作站 ,河北 涿州 072751) (qiujieting@163. com )
2 L inux2. 6内核下 SSC驱动整体结构
L inux2. 6. 21内核源码没有提供 SSC接口的设备驱动程 序 ,本文针对于 AT91RM9200芯片的 SSC外设接口重新构建 SSC设备驱动 。 SSC驱动是字符设备驱动程序 ,它主要完成 以下工作 :
1)设计 SSC平台设备的注册函数 ; 2)设计 SSC的模块加载函数和卸载函数 ; 3)设计 SSC的 DMA传输模式和 read读函数 。 可将 SSC驱动程序分为 3 个层次 (如图 1 所示 ) 。最底 层由 at91 rm9200 _device. c文件获取了 SSC设备总线地址和 中断号 ,以及使能 SSC接口管脚 。 board2dk. c文件在 L inux系 统启动时注册了 SSC设备 ,以便上层 SSC设备驱动程序获取 SSC的硬件资源 。 at91_ssc. c文件实现了 SSC设备和 DMA 控 制器的初始化 、设备号和中断号的注册 、注销以及提供了用户 空间的 file_operations操作 (包括 open、read、ioctl和 close函数 操作 ) 。由于 AT91RM9200的 3个 SSC外围接口接收器 /发生 器用法类似 ,本文就仅介绍 SSC0接收器驱动程序设计 。
号。
static struct resource ssc0_resources[ ] = { [0 ] = {
首先通过 resource元素定义 SSC0的设备资源信息 。 ssc0 _resources[ 0 ]定义了 AT91RM9200 SSC0 外设映射到地址空 间的范围 ,从 AT91RM9200 _BASE_SSC0 ( 0xFFFD0000)开始 , 长度为 16 KB。 ssc0 _ resources [ 1 ]定义了 SSC0 设备的中断
当系统功能越来越多 ,使用操作系统就很有必要 。L inux 是开放源码的操作系统 ,因其具有高可靠性 、资源丰富 、免费 等优点 ,使得它在嵌入式领域越来越流行 [4 ] 。正是由于 L inux
开放源代码 ,使得众多的软件设计者不断为其更新和优化 。 至今为止 , L inux内核已经发展到 2. 6版本 ,与 L inux2. 4 内核 相比 ,它在性能 、安全性和设备模型等方面都作了极大的改 进 。而随着 L inux内核版本的升级 ,驱动程序的开发也要作 相应的修改 [ 5 - 6 ] 。
第 30卷第 3期 2010年 3月
计算机应用 Journal of Computer App lications
Vol. 30 No. 3 M ar. 2010
文章编号 : 1001 - 9081 (2010) 03 - 0850 - 04
L inux216内核下同步串行通信驱动的开发与应用
1 AT91RM9200同步串行控制器 SSC接口分析
AT91RM9200是一款高性能 、低功耗和低成本的嵌入式 ARM 微处理器 ,内部集成了丰富的系统资源和外设接口 ,被 广泛应用于各种工业控制系统中 。它提供了 3个同步串口控
收稿日期 : 2009 - 09 - 21;修回日期 : 2009 - 11 - 13。 作者简介 :仇洁婷 (1985 - ) ,女 (壮族 ) ,广西钦州人 ,硕士研究生 ,主要研究方向 :物探仪器 ; 陈儒军 ( 1973 - ) ,男 (土家族 ) ,贵州思南人 , 副教授 ,博士 ,主要研究方向 :物探仪器 ; 何展翔 (1962 - ) ,男 ,湖南平江人 ,教授级高级工程师 ,主要研究方向 :综合物化探采集处理解释方法 。
摘 要 :随着 ARM /DSP双核处理器在地球物理勘探仪器中的推广应用 ,双核间的通信成为实现这种双核处理器 系统的关键技术 。针对 L inux2. 6版本内核 ,详细介绍了基于 AT91TM9200 的 SSC同步串行通信设备驱动的模块化 、 分层次的设计架构 ,并在驱动中使用 DMA 传输模式 、分段缓存技术和修改 PDA 控制器优先级 。在此基础上给出了 AT91RM9200 /DSP56309双核的接口电路设计 。试验表明 ,在 AT91RM9200 /DSP56309双核中利用同步串行同步通信 的设计 ,能够使系统高效 、稳定 、快速地进行数据传输 ,从而使双核处理器能够很好地协同工作 。
针对上述分析 ,本文基于 ATM EL 公司 AT91RM9200 的 同步串行控制器 ( Serial Synchronous Controller, SSC) ,着重讨 论在 L inux2. 6. 21内核下如何开发和设计 SSC驱动程序 。最 后 ,以 DSP56309芯片作为数字信号处理器 ,以 AT91RM9200 芯片作为微控制器 ,采用 SSC作为 ARM 和 DSP之间的通信 接口 ,对 L inux2. 6. 21内核下的 SSC驱动程序进行测试和分 析。
第 3期
仇洁婷等 : L inux2. 6内核下同步串行通信驱动的开发与应用
8 51
制器 ( SSC) ,用于与外部器件的同步通信 。 SSC支持许多用 于音频及电信应用中常用的串行同步通信协议 ,如 I2S、短帧 同步和长帧同步等 。每个 SSC都有独立的发送器 、接收器及 一个时钟分频器 。发送器和接收器分别有三个接口 :数据信 号 TD /RD、时钟信号 TK /RK和帧同步信号 TF /RF。可编程 设定为自动启动或在帧同步信号检测到不同事件时启动 。 SSC的 可 编 程 高 电 平 及 两 个 32 位 专 用 外 设 数 据 控 制 器 ( Peripheral Data Controller, PDC)通道 (DMA 访问 ) ,可在没有 处理器干涉的情况下进行连续的高速率数据传输 [7 ] 。
图 1 SSC设备驱动的程序结构 2. 1 SSC驱动的 Platform 注册
L inux2. 6. 21 内 核 把 AT91RM9200 处 理 器 内 部 集 成 的 I2 C、SP I和看门狗等都归纳为平台设备 ,并由内核统一管理 。 平台设备用 p latform _device结构体来描述 ,包含其所用的资 源数量和指针 。 SSC作为 AT91RM9200处理器内部集成的外 设接口 ,需要通过 p latform _device进行注册 。AT91RM9200的 p latform 平 台 设 备 注 册 在 / arch / arm /mach2at91 / at91 rm9200 _ device. c文件中执行 。
Key words: serial synchronous communication; AT91RM9200; DSP56309; L inux2. 6
0 引言
随着地球物理勘探仪器在功耗 、性能和成本等方面要求 越来越高 ,嵌入式 ARM 处理器在地球物理勘探仪器领域的 应用也不 断 扩 大 [1 ] 。同 时 , 由 于 数 字 信 号 处 理 器 ( D igital Signal Processor, DSP) 在 数 字 滤 波 、快 速 傅 里 叶 变 换 ( Fast Fourier Transformation, FFT)和谱分析等方面具有明显的优越 性 ,使得它被广泛用于高精度数据运算和复杂数据处理的地 球勘探仪器中 [2 ] 。但是 DSP没有功能强大的操作系统 ,不适 合做系统控制 ,而这正好是 ARM 的强项 。由此可见 ,通过采 用 ARM 与 DSP的结合可充分发挥二者的优势 [3 ] ,从而提升 仪器的性能 。然而 ,这种 ARM /DSP双核处理器系统的关键 技术是如何实现双核之间的通信 ,以确保系统能够对信号进 行实时 、高效的传输和处理 。
关键词 :同步串行通信 ; AT91RM9200; DSP56309; L inux2. 6 中图分类号 : TP316 文献标志码 : A
D evelopm en t and applica tion of ser ia l synchronous comm un ica tion dr iver in L inux216
Q IU J ie2ting1, 4 , CHEN Ru2jun1, 2, 3 , HE Zhan2xiang4 , Q IU Kai2lin4
(1. School of Info2physics and Geom atics Eng ineering, Cen tral S outh U n iversity, Changsha Hunan 410083, China; 2. Postdoctora l S tation of Com pu ter S cience and Technology, Cen tral S outh U n iversity, Changsha Hunan 410083, Chiபைடு நூலகம்a; 3. Postdoctoral R esea rch S ta tion of B ureau of Geophysica l P rospecting, Ch ina N ationa l Petroleum Corpora tion, Z huozhou Hebei 072751, Ch ina;
Abstract: The communication between ARM and D igital Signal Processor (DSP) is a key factor in ARM /DSP dual core design w idely used in geophysics exp loration instrumentation. In this paper serial synchronous communication between AT91RM9200 /DSP56309 dual core p rocessors was realized and the modularized and hierarchical design of the SSC driver based on AT91TM9200 in L inux 2. 6 was introduced in detail. The DMA transm ission, multi2buffering and PDA controller p riority modification was used in the driving design. The SSC interface circuit imp lementation based on the design was also introduced. The experimental results show that the data transfer between AT91RM9200 /DSP56309 is rap id and steady, and so that the dual core p rocessors co2work very well.
仇洁婷 1, 4 ,陈儒军 1, 2, 3 ,何展翔 4 ,邱开林 4
(1. 中南大学 信息物理工程学院 ,长沙 410083; 2. 中南大学 计算机科学与技术博士后流动站 ,长沙 410083; 3. 中国石油集团东方地球物理勘探有限责任公司 博士后科研工作站 ,河北 涿州 072751;
4. 中国石油集团东方地球物理勘探有限责任公司 综合物化探研究生工作站 ,河北 涿州 072751) (qiujieting@163. com )