嵌入式家庭网关中SPI接口的软件模拟(一)_第1页
嵌入式家庭网关中SPI接口的软件模拟(一)_第2页
嵌入式家庭网关中SPI接口的软件模拟(一)_第3页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

1、嵌入式家庭网关中SPI接口的软件模拟一 摘要:介绍嵌入式家庭网关的根本框架和信息流程, 及其 CPUS3C4510B 的体系结构和内部资源;说明在所选用 uClinux 操作系统下,添加 SPI 接口驱动程序的详细过程。关键词:家庭网关 S3C4510BuClinuxSPI 软件模拟引言随着信息社会的开展,网络和信息家电越来越地出现在 人们的生活中。人们普通要求将家庭内的所有家用电器与 Internet 连接 起来,实现主人在远方用计算机或 通过 Internet 对象家庭电设施进 行监控。家用电器制造商可以通过网络对其生产的设备进行售后跟踪 效劳;家用电器是故障时能自动按预设的邮件地址来发送

2、电子邮件进 行报警。这就需要有一个 “家庭网络中央控制器 。它对外与 Internet 连 接,对内通过家庭内部无线局域网将所有家用电器连接成一体,从而 确保信息家电平安地接入 I nternet 。当前,多数研究单位推出的家庭网 络智能控制器,均以PC或准PC机作为硬件平台,由于价位高而均未 被市场容纳。嵌入式 Internet 是近几年开展起来的一项新兴技术。以 32 位 ARM 嵌入式微处理器为硬件平台,通过移植嵌入式操作系统 uCIi nux内核,开发相应的硬件驱动、微型 GUI和上层应用软件,最终 实现产品化的嵌入式家庭网络中央控制器。该系统具有体积小、功耗 低、价格廉价的特点。1系

3、统的硬件组本钱系统以高性能、低价格的 S3C4510B为主CPU它 是Samsung公司推出的基于ARM7TDMI核,精简指令系统的32位高速 微处理器。工作电压为3.3V,内核ARM7TDMI的工作电压为2.57,大 大降低了芯片的功耗。S3C4510B片上资源:一个总线仲裁器可以根据 总线仲裁优先级在片上功能模块和外围设备之间进行系统总线控制权 分配;8KB指令、数据复用Cache每128bit为1页,并可全部或局部 设置为SRAM 1个主I2C总线控制器,可作为主发送器或主接收器, 能连接多个从设备;2个通用DMA; 18个通用I/O 口; 2路4线UART 口,其中一个支持IrDA1.

4、0,可用于红外通信;6组ROM/SRAM/Flash 用于管理外部存储器。另外,可扩展4组动态存储器和4BANKT展I/O 设备;2通道带有 DMA传送方式的HDLC口; 1个10M/100M自适应 以太网控制器。图1为家庭网关的硬件框图,以S3C4510B为根本核心 系统,外围扩展一系列功能模块。有 4X4键盘及以屏幕LCD显示构成 良好的人机界面,用于手动本地参数查询和设定。家庭网关根本系统 以SPI接口与PTR3000无线收发模块相连,同时家庭内部家电控制器也 通过SPI接口扩展PTR3000无线模块。这样,家庭网关的无线模块以轮 询的方式与家庭内各家电控制器上无线模块进行通信,从而组成

5、家庭 内部无线子网。家庭网关根本系统只需对 SPI口进行操作即可实现与家 电通信。实现了家电以家庭网关为中介与In ternet在物理层互联的三个 通路:PC通过LAN经由In ter net连接到根本系统的以太网口、 PC通过 Modem经由公司 网与嵌入式 Modem相连再到UART1 机经 过公用 网经语音卡连到 UART1。2uClinux嵌入式操作系统操作系统选用uClinux。它是一个完全符合GNU(GNU sNotUnix 自由软件基金会)/GPL (GeneralPulicLicense 通用 公共许可证)公约的完全开放代码工程,是标准Linux的一个分支,现在由Lineo公司

6、支持维护。它专门针对没有 MMU的CPU并且专为嵌 入式系统做了许多小型化的工作。UClinux经过对标准Linux内核的改 动,形成了一个高度优化的、代码紧凑的嵌入式Linux。虽然它的体积很小,但uClinux仍然保存了 Linux的大多数的优点,稳定、良好的移 植性、优秀的网络功能、完备的对各种文件系统的支持以及标准丰富 的API。它的主要特片如下: 在添加1 行:obj_$(CONFIG_SPI)+=SPI.0在 24 行 obj-y+二mem.otty_io.o 后加 PI.o 。 在 , 添 加 1 行 :bool'SPI'CONFIG_SPI便于在 makemen

7、uconfig 时选择。在 在文件头部添加:#ifdefCONFIG_SPI/编译 时选择该项就执行 SPI的初始化函数*/externvoidSPInit(void);#endif在 chr_dev_init() 函 数 添 加 : #ifdefCONFIT_SPISPI_init();#endif 修 改 vendor/Samsung/4510b/Makefile,建立起设备节点。在12 35 行间,DEVICE局部添加内容SP, c,29,0。SPI是设备名,c代表字符设备,29 是SPI的主设备号,0是SPI的次设备号。makemenuconfig时选中 SPI编译,然后直载。启动后,

8、会看到/proc/devinces中字符设备多了一 项SPI29 S3C4510B有 18个通用I/O 口,其中高10位可设置为其它功 能口。在该系统中,设置P8为中断接收线,P11模拟主机输出线MOSI, P12 模拟主机时钟 SCK, P13 模拟主机输入线 MISO。 P8 口用于接收PTR3000的发送请求信号。当P8 口接收到请求信号时,系统进入中断 处理。中断处理进程唤醒睡在睡眠队列SPI_WA IT上的读进程,读进程由P12 口输出SCK言号并由P13 口读入数据。值得说明的是,SPI不带 中断线,在此用P8 口做中断接收线是为了防止操作系统在没有进行SPI操作时不断向SCK线发

9、时钟信号。因此,MSP430F147IPM必须另外与 S3C4510B连一个引脚在请求发送数据时发出中断接收线是为了防止操 作系统在没有进行 SPI操作时不断向SCK线发时钟信号。因此,MSP430F147IPM必须另外与S3C4510B连一个引脚在请求发送数据时 发出中断请求信号。 实现过程如下: Staticwait_queue_head_wait;/ 休眠 队列/读函数staticssize_tSPI_onlyread(structfile*file,char*buf,size_tcount,loff_t*ppos)i nterruptible_sleep_on(&SPI_wai

10、t);/ 读 进 程 睡 眠 等 待 读 中 断 信 号 if(count>BUFNUM)count=BUFNUM;for(num=0;num>(12-i);/ 数 据 输 入if(copy_to_user(buf,&SPI_read,cou nt) 数据从内核空间拷贝到用户 这 间 return-EFAULT;returncount;/ 写 函 数 staticssize_tSPI_onlywrite(structfile*file,constchar*buf,size_tcount,loff_t* ppos)if(count>BUFNUM)count=BUFNUM

11、;if(copy_from_user(&SPI_write,b uf,count)/ 数 据 从 用 户 空 间 拷 贝 到 内 核 空 间 return-EFAULT;for(num=0;num>1;iopdata二iopdataA0x1000; 时钟输 出 returncount;/ 中 断 响 应 函 数staticintSPI_irq(intirq,void*dev_id,structpt_regs*regs)intpnd=intpnd|0X1;/ 清 中 断 位 wake_up_interruptible(&SPI_wait);/ 唤 醒 睡 眠 队 列 ret

12、urn1;/ 字 符 设 备 驱 动 接 口 staticstructfile_operationsSPI_fops=owner;THIS_MODULE,read:SPI_onlyr ead,write:SPI_onlywrite,;/ 初 始 化 函 数 int_ini tSPI_i ni t(void)register_chrdev(29,"SPI"&SPI_fops);/设备注册函数 init_waitqueue_head(&SPI_wait);if(!request_irq(0,SPI_irq,SA_SAMPLE_RA NDOM,"SPI"NULL)/中断申请retur n-EFAULT;iopmod=(iopmod&0 xffffe7ff)=0x1800+iopmod;/设置通用 I/O 口模式 iopcon=(iopcon&0xffffffe0)+0xle+iopcon ;/设置通用 I/O 模式 enable_

温馨提示

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

评论

0/150

提交评论