spi接口软件模拟研究论文-_第1页
spi接口软件模拟研究论文-_第2页
spi接口软件模拟研究论文-_第3页
spi接口软件模拟研究论文-_第4页
spi接口软件模拟研究论文-_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SPI 接口软件模拟研究论文软件模拟引言随着信息社会的发展,网络和信息家电越来越地出现在人们的生活中。人们普通要求将家庭内的所有家用电器与 Internet 连接起来,实现主人在远方用计算机或电话通过 Internet 对象家庭电设施进行监控。家用电器制造商可以通过网络对其生产的设备进行售后跟踪服务;家用电器是故障时能自动按预设的邮件地址来发送电子邮件进行报警。这就需要有一个“家庭网络中央控制器”。它对外与 Internet 连接,对内通过家庭内部无线局域网将所有家用电器连接成一体,从而确保信息家电安全地接入 Internet。当前,多数研究单位推出的家庭网络智能控制器,均以 Pc 或准 Pc 机作为硬件平台,由于价位高而均未被市场容纳。嵌入式 Internet 是近几年发展起来的一项新兴技术。以 32 位 ARm 嵌入式微处理器为硬件平台,通过移植嵌入式操作系统 uclinux 内核,开发相应的硬件驱动、微型 GUI 和上层应用软件,最终实现产品化的嵌入式家庭网络中央控制器。该系统具有体积小、功耗低、价格便宜的特点。1 系统的硬件组成本系统以高性能、低价格的 S3c4510B 为主 cPU。它是 Samsung 公司推出的基于 ARm7TDmI 核,精简指令系统的 32 位高速微处理器。工作电压为 3.3V,内核 ARm7TDmI 的工作电压为 2.5V,大大降低了芯片的功耗。S3c4510B 片上资源:一个总线仲裁器可以根据总线仲裁优先级在片上功能模块和外围设备之间进行系统总线控制权分配;8kB 指令、数据复用 cache,每 128bit为 1 页,并可全部或部分设置为 SRAm;1 个主 I2c总线控制器,可作为主发送器或主接收器,能连接多个从设备;2 个通用 DmA;18 个通用 I/o 口; 2 路 4 线 UART 口,其中一个支持 IrDA 1.0,可用于红外通信;6 组 Rom/SRAm/Flash 用于管理外部存储器。另外,可扩展 4 组动态存储器和 4 BANk扩展 I/o 设备;2 通道带有 DmA 传送方式的 HDLc口;1 个 10m/100m 自适应以太网控制器。图 1 为家庭网关的硬件框图,以 S3c4510B 为基本核心系统,外围扩展一系列功能模块。有 44 键盘及以屏幕 LcD 显示构成良好的人机界面,用于手动本地参数查询和设定。家庭网关基本系统以 SPI 接口与PTR3000 无线收发模块相连,同时家庭内部家电控制器也通过 SPI 接口扩展 PTR3000 无线模块。这样,家庭网关的无线模块以轮询的方式与家庭内各家电控制器上无线模块进行通信,从而组成家庭内部无线子网。家庭网关基本系统只需对 SPI 口进行操作即可实现与家电通信。实现了家电以家庭网关为中介与 Internet 在物理层互联的三个通路:Pc 通过LAN 经由 Internet 连接到基本系统的以太网口、Pc 通过 modem 经由公司电话网与嵌入式 modem 相连再到 UART1、电话机经过公用电话网经语音卡连到 UART1。2 uclinux 嵌入式操作系统操作系统选用uclinux。它是一个完全符合 GNU(GNUs Not Unix,自由软件基金会)/GPL(General Pulic License,通用公共许可证)公约的完全开放代码项目,是标准 Linux 的一个分支,现在由 Lineo 公司支持维护。它专门针对没有 mmU 的 cPU,并且专为嵌入式系统做了许多小型化的工作。Uclinux 经过对标准 Linux 内核的改动,形成了一个高度优化的、代码紧凑的嵌入式 Linux。虽然它的体积很小,但 uclinux 仍然保留了 Linux 的大多数的优点,稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持以及标准丰富的 API。它的主要特片如下:在 linux-2.4.x/driver/char/makefile 添加 1 行:obj_$+=SPI.0。在 24 行 obj-y+=mem.o tty_io.o后加 PI.o。在 linux-2.4.x/driver/char/config.in,添加 1 行:boolSPIcoNFIG_SPI 便于在 make me nuconfig时选择。在 linux-2.4.x/driver/char/mem.c 在文件头部添加:#ifdef coNFIG_SPI /*编译时选择该项就执行 SPI 的初始化函数*/extern void SPI_init;#endif 在 chr_dev_init 函数添加:#ifdef coNFIT_SPISPI_init;#endif修改vendor/Samsung/4510b/makefile,建立起设备节点。在 1235 行间,DEVIcE 部分添加内容SPI,c,29,0。SPI 是设备名,c 代表字符设备,29是 SPI 的主设备号,0 是 SPI 的次设备号。make menuconfig 时选中 SPI 编译,然后直载。启动后,会看到/proc/devinces 中字符设备多了一项 SPI 29。S3c4510B 有 18 个通用 I/o 口,其中高 10 位可设置为其它功能口。在该系统中,设置 P8 为中断接收线,P11 模拟主机输出线 moSI,P12 模拟主机时钟 Sck,P13 模拟主机输入线 mISo。P8 口用于接收 PTR3000 的发送请求信号。当 P8 口接收到请求信号时,系统进入中断处理。中断处理进程唤醒睡在睡眠队列 SPI_wAIT 上的读进程,读进程由P12 口输出 Sck 信号并由 P13 口读入数据。值得说明的是,SPI 不带中断线,在此用 P8 口做中断接收线是为了避免操作系统在没有进行 SPI 操作时不断向 Sck 线发时钟信号。因此,mSP430F147IPm 必须另外与 S3c4510B 连一个引脚在请求发送数据时发出中断接收线是为了避免操作系统在没有进行SPI 操作时不断向 Sck 线发时钟信号。因此,mSP430F147IPm 必须另外与 S3c4510B 连一个引脚在请求发送数据时发出中断请求信号。实现过程如下:Static wait_queue_head_wait; /休眠队列/读函数 static ssize_t SPI_onlyreadinterruptible_sleep_on; /读进程睡眠等待读中断信号 ifcount=BUFNUm;for); /数据输入if) /数据从内核空间拷贝到用户这间 return-EFAULT;return count;/写函数static ssize_t SPI_onlywriteifcount=BUFNUm;if) /数据从用户空间拷贝到内核空间 return-EFAULT;forintpnd=intpnd|0X1; /清中断位wake_up_interruptible; /唤醒睡眠队列return 1;/字符设备驱动接口 static struct file_operations SPI_fops=owner; THIS_moDULE,read: SPI_onlyread,write: SPI_onlywrite,;/初始化函数 int_init SPI_initregister_chrdev;/设备注册函数init_waitqueue_head;if) /中断申请 return-EFAULT;iopmod=0x1800+iopmod; /设置通用I/o 口模式 iopcon=+0xle+iopcon;/设置通用 I/o模式 enable_irq; /开中断 return 0;module_init;moDULE_LIcENSE;EXPoRT_No_SymBoLS;结语实验证明,模拟的 SPI 口接收发送数据准确可靠。用户程序可以以设备文件的形式进行访问,与标准的 SPI 接口无异。该方案对于嵌入式家庭网关的研究,以及运用 uclinux 作为操作系统的嵌入式模拟通信接口,有一定的参考价值软件模拟引言随着信息社会的发展,网络和信息家电越来越地出现在人们的生活中。人们普通要求将家庭内的所有家用电器与 Internet 连接起来,实现主人在远方用计算机或电话通过 Internet 对象家庭电设施进行监控。家用电器制造商可以通过网络对其生产的设备进行售后跟踪服务;家用电器是故障时能自动按预设的邮件地址来发送电子邮件进行报警。这就需要有一个“家庭网络中央控制器”。它对外与 Internet 连接,对内通过家庭内部无线局域网将所有家用电器连接成一体,从而确保信息家电安全地接入 Internet。当前,多数研究单位推出的家庭网络智能控制器,均以 Pc 或准 Pc 机作为硬件平台,由于价位高而均未被市场容纳。嵌入式 Internet 是近几年发展起来的一项新兴技术。以 32 位 ARm 嵌入式微处理器为硬件平台,通过移植嵌入式操作系统 uclinux 内核,开发相应的硬件驱动、微型 GUI 和上层应用软件,最终实现产品化的嵌入式家庭网络中央控制器。该系统具有体积小、功耗低、价格便宜的特点。1 系统的硬件组成本系统以高性能、低价格的 S3c4510B 为主 cPU。它是 Samsung 公司推出的基于 ARm7TDmI 核,精简指令系统的 32 位高速微处理器。工作电压为 3.3V,内核 ARm7TDmI 的工作电压为 2.5V,大大降低了芯片的功耗。S3c4510B 片上资源:一个总线仲裁器可以根据总线仲裁优先级在片上功能模块和外围设备之间进行系统总线控制权分配;8kB 指令、数据复用 cache,每 128bit为 1 页,并可全部或部分设置为 SRAm;1 个主 I2c总线控制器,可作为主发送器或主接收器,能连接多个从设备;2 个通用 DmA;18 个通用 I/o 口; 2 路 4 线 UART 口,其中一个支持 IrDA 1.0,可用于红外通信;6 组 Rom/SRAm/Flash 用于管理外部存储器。另外,可扩展 4 组动态存储器和 4 BANk扩展 I/o 设备;2 通道带有 DmA 传送方式的 HDLc口;1 个 10m/100m 自适应以太网控制器。图 1 为家庭网关的硬件框图,以 S3c4510B 为基本核心系统,外围扩展一系列功能模块。有 44 键盘及以屏幕 LcD 显示构成良好的人机界面,用于手动本地参数查询和设定。家庭网关基本系统以 SPI 接口与PTR3000 无线收发模块相连,同时家庭内部家电控制器也通过 SPI 接口扩展 PTR3000 无线模块。这样,家庭网关的无线模块以轮询的方式与家庭内各家电控制器上无线模块进行通信,从而组成家庭内部无线子网。家庭网关基本系统只需对 SPI 口进行操作即可实现与家电通信。实现了家电以家庭网关为中介与 Internet 在物理层互联的三个通路:Pc 通过LAN 经由 Internet 连接到基本系统的以太网口、Pc 通过 modem 经由公司电话网与嵌入式 modem 相连再到 UART1、电话机经过公用电话网经语音卡连到 UART1。2 uclinux 嵌入式操作系统操作系统选用uclinux。它是一个完全符合 GNU(GNUs Not Unix,自由软件基金会)/GPL(General Pulic License,通用公共许可证)公约的完全开放代码项目,是标准 Linux 的一个分支,现在由 Lineo 公司支持维护。它专门针对没有 mmU 的 cPU,并且专为嵌入式系统做了许多小型化的工作。Uclinux 经过对标准 Linux 内核的改动,形成了一个高度优化的、代码紧凑的嵌入式 Linux。虽然它的体积很小,但 uclinux 仍然保留了 Linux 的大多数的优点,稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持以及标准丰富的 API。它的主要特片如下:在 linux-2.4.x/driver/char/makefile 添加 1 行:obj_$+=SPI.0。在 24 行 obj-y+=mem.o tty_io.o后加 PI.o。在 linux-2.4.x/driver/char/config.in,添加 1 行:boolSPIcoNFIG_SPI 便于在 make me nuconfig时选择。在 linux-2.4.x/driver/char/mem.c 在文件头部添加:#ifdef coNFIG_SPI /*编译时选择该项就执行 SPI 的初始化函数*/extern void SPI_init;#endif 在 chr_dev_init 函数添加:#ifdef coNFIT_SPISPI_init;#endif修改vendor/Samsung/4510b/makefile,建立起设备节点。在 1235 行间,DEVIcE 部分添加内容SPI,c,29,0。SPI 是设备名,c 代表字符设备,29是 SPI 的主设备号,0 是 SPI 的次设备号。make menuconfig 时选中 SPI 编译,然后直载。启动后,会看到/proc/devinces 中字符设备多了一项 SPI 29。S3c4510B 有 18 个通用 I/o 口,其中高 10 位可设置为其它功能口。在该系统中,设置 P8 为中断接收线,P11 模拟主机输出线 moSI,P12 模拟主机时钟 Sck,P13 模拟主机输入线 mISo。P8 口用于接收 PTR3000 的发送请求信号。当 P8 口接收到请求信号时,系统进入中断处理。中断处理进程唤醒睡在睡眠队列 SPI_wAIT 上的读进程,读进程由P12 口输出 Sck 信号并由 P13 口读入数据。值得说明的是,SPI 不带中断线,在此用 P8 口做中断接收线是为了避免操作系统在没有进行 SPI 操作时不断向 Sck 线发时钟信号。因此,mSP430F147IPm 必须另外与 S3c4510B 连一个引脚在请求发送数据时发出中断接收线是为了避免操作系统在没有进行SPI 操作时不断向 Sck 线发时钟信号。因此,mSP430F147IPm 必须另外与 S3c4510B 连一个引脚在请求发送数据时发出中断请求信号。实现过程如下:Static wait_queue_head_wait; /休眠队列/读函数 static ssize_t SPI_onlyreadinterruptible_sleep_on; /读进程睡眠等待读中断信号 ifcount=BUFNUm;for); /数据输入if) /数据从内核空间拷贝到用户这间 return-EFAULT;return count;/写函数static ssize_t SPI_onlywriteifcount=BUFNUm;if) /数据从用户空间拷贝到内核空间 return-EFAULT;forintpnd=intpnd|0X1; /清中断位wake_up_interruptible; /唤醒睡眠队列return 1;/字符设备驱动接口 static struct file_operations SPI_fops=owner; THIS_moDULE,read: SPI_onlyread,write: SPI_onlywrite,;/初始化函数 int_init SPI_initregister_chrdev;/设备注册函数init_waitqueue_head;if) /中断申请 return-EFAULT;iopmod=0x1800+iopmod; /设置通用I/o 口模式 iopcon=+0xle+iopcon;/设置通用 I/o模式 enable_irq; /开中断 return 0;module_init;moDULE_LIcENSE;EXPoRT_No_SymBoLS;结语实验证明,模拟的 SPI 口接收发送数据准确可靠。用户程序可以以设备文件的形式进行访问,与标准的 SPI 接口无异。该方案对于嵌入式家庭网关的研究,以及运用 uclinux 作为操作系统的嵌入式模拟通信接口,有一定的参考价值软件模拟引言随着信息社会的发展,网络和信息家电越来越地出现在人们的生活中。人们普通要求将家庭内的所有家用电器与 Internet 连接起来,实现主人在远方用计算机或电话通过 Internet 对象家庭电设施进行监控。家用电器制造商可以通过网络对其生产的设备进行售后跟踪服务;家用电器是故障时能自动按预设的邮件地址来发送电子邮件进行报警。这就需要有一个“家庭网络中央控制器”。它对外与 Internet 连接,对内通过家庭内部无线局域网将所有家用电器连接成一体,从而确保信息家电安全地接入 Internet。当前,多数研究单位推出的家庭网络智能控制器,均以 Pc 或准 Pc 机作为硬件平台,由于价位高而均未被市场容纳。嵌入式 Internet 是近几年发展起来的一项新兴技术。以 32 位 ARm 嵌入式微处理器为硬件平台,通过移植嵌入式操作系统 uclinux 内核,开发相应的硬件驱动、微型 GUI 和上层应用软件,最终实现产品化的嵌入式家庭网络中央控制器。该系统具有体积小、功耗低、价格便宜的特点。1 系统的硬件组成本系统以高性能、低价格的 S3c4510B 为主 cPU。它是 Samsung 公司推出的基于 ARm7TDmI 核,精简指令系统的 32 位高速微处理器。工作电压为 3.3V,内核 ARm7TDmI 的工作电压为 2.5V,大大降低了芯片的功耗。S3c4510B 片上资源:一个总线仲裁器可以根据总线仲裁优先级在片上功能模块和外围设备之间进行系统总线控制权分配;8kB 指令、数据复用 cache,每 128bit为 1 页,并可全部或部分设置为 SRAm;1 个主 I2c总线控制器,可作为主发送器或主接收器,能连接多个从设备;2 个通用 DmA;18 个通用 I/o 口; 2 路 4 线 UART 口,其中一个支持 IrDA 1.0,可用于红外通信;6 组 Rom/SRAm/Flash 用于管理外部存储器。另外,可扩展 4 组动态存储器和 4 BANk扩展 I/o 设备;2 通道带有 DmA 传送方式的 HDLc口;1 个 10m/100m 自适应以太网控制器。图 1 为家庭网关的硬件框图,以 S3c4510B 为基本核心系统,外围扩展一系列功能模块。有 44 键盘及以屏幕 LcD 显示构成良好的人机界面,用于手动本地参数查询和设定。家庭网关基本系统以 SPI 接口与PTR3000 无线收发模块相连,同时家庭内部家电控制器也通过 SPI 接口扩展 PTR3000 无线模块。这样,家庭网关的无线模块以轮询的方式与家庭内各家电控制器上无线模块进行通信,从而组成家庭内部无线子网。家庭网关基本系统只需对 SPI 口进行操作即可实现与家电通信。实现了家电以家庭网关为中介与 Internet 在物理层互联的三个通路:Pc 通过LAN 经由 Internet 连接到基本系统的以太网口、Pc 通过 modem 经由公司电话网与嵌入式 modem 相连再到 UART1、电话机经过公用电话网经语音卡连到 UART1。2 uclinux 嵌入式操作系统操作系统选用uclinux。它是一个完全符合 GNU(GNUs Not Unix,自由软件基金会)/GPL(General Pulic License,通用公共许可证)公约的完全开放代码项目,是标准 Linux 的一个分支,现在由 Lineo 公司支持维护。它专门针对没有 mmU 的 cPU,并且专为嵌入式系统做了许多小型化的工作。Uclinux 经过对标准 Linux 内核的改动,形成了一个高度优化的、代码紧凑的嵌入式 Linux。虽然它的体积很小,但 uclinux 仍然保留了 Linux 的大多数的优点,稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持以及标准丰富的 API。它的主要特片如下:在 linux-2.4.x/driver/char/makefile 添加 1 行:obj_$+=SPI.0。在 24 行 obj-y+=mem.o tty_io.o后加 PI.o。在 linux-2.4.x/driver/char/config.in,添加 1 行:boolSPIcoNFIG_SPI 便于在 make me nuconfig时选择。在 linux-2.4.x/driver/char/mem.c 在文件头部添加:#ifdef coNFIG_SPI /*编译时选择该项就执行 SPI 的初始化函数*/extern void SPI_init;#endif 在 chr_dev_init 函数添加:#ifdef coNFIT_SPISPI_init;#endif修改vendor/Samsung/4510b/makefile,建立起设备节点。在 1235 行间,DEVIcE 部分添加内容SPI,c,29,0。SPI 是设备名,c 代表字符设备,29是 SPI 的主设备号,0 是 SPI 的次设备号。make menuconfig 时选中 SPI 编译,然后直载。启动后,会看到/proc/devinces 中字符设备多了一项 SPI 29。S3c4510B 有 18 个通用 I/o 口,其中高 10 位可设置为其它功能口。在该系统中,设置 P8 为中断接收线,P11 模拟主机输出线 moSI,P12 模拟主机时钟 Sck,P13 模拟主机输入线 mISo。P8 口用于接收 PTR3000 的发送请求信号。当 P8 口接收到请求信号时,系统进入中断处理。中断处理进程唤醒睡在睡眠队列 SPI_wAIT 上的读进程,读进程由P12 口输出 Sck 信号并由

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论