嵌入式家庭网关中SPI接口的软件模拟

上传人:冷*** 文档编号:18586667 上传时间:2020-12-30 格式:DOCX 页数:3 大小:14.30KB
收藏 版权申诉 举报 下载
嵌入式家庭网关中SPI接口的软件模拟_第1页
第1页 / 共3页
嵌入式家庭网关中SPI接口的软件模拟_第2页
第2页 / 共3页
嵌入式家庭网关中SPI接口的软件模拟_第3页
第3页 / 共3页
资源描述:

《嵌入式家庭网关中SPI接口的软件模拟》由会员分享,可在线阅读,更多相关《嵌入式家庭网关中SPI接口的软件模拟(3页珍藏版)》请在装配图网上搜索。

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

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

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

4、器和4BANK扩展I/O设备;2通道带有DMA传送方式的HDLC口;1个10M/100M自适应以太网控制器。图1为家庭网关的硬件框图,以S3C4510B为基本核心系统,外围扩展一系列功能模块。有44键盘及以屏幕LCD显示构成良好的人机界面,用于手动本地参数查询和设定。家庭网关基本系统以SPI接口与PTR3000无线收发模块相连,同时家庭内部家电控制器也通过SPI接口扩展PTR3000无线模块。这样,家庭网关的无线模块以轮询的方式与家庭内各家电控制器上无线模块进行通信,从而组成家庭内部无线子网。家庭网关基本系统只需对SPI口进行操作即可实现与家电通信。实现了家电以家庭网关为中介与Internet

5、在物理层互联的三个通路:PC通过LAN经由Internet连接到基本系统的以太网口、PC通过Modem经由公司电话网与嵌入式Modem相连再到UART1、电话机经过公用电话网经语音卡连到UART1。2uClinux嵌入式操作系统操作系统选用uClinux。它是一个完全符合GNU(GNUsNotUnix,自由软件基金会)/GPL(GeneralPulicLicense,通用公共许可证)公约的完全开放代码项目,是标准Linux的一个分支,现在由Lineo公司支持维护。它专门针对没有MMU的CPU,并且专为嵌入式系统做了许多小型化的工作。UClinux经过对标准Linux内核的改动,形成了一个高度优

6、化的、代码紧凑的嵌入式Linux。虽然它的体积很小,但uClinux仍然保留了Linux的大多数的优点,稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持以及标准丰富的API。它的主要特片如下:在linux-2.4.x/driver/char/Makefile添加1行:obj_$(CONFIG_SPI)+=SPI.0。在24行obj-y+=mem.otty_io.o后加PI.o。在linux-2.4.x/driver/char/Config.in,添加1行:boolSPICONFIG_SPI便于在makemenuconfig时选择。在linux-2.4.x/driver/char/

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

8、多了一项SPI29。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连一个引脚在请

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

10、m=0;num(12-i);/数据输入if(copy_to_user(buf,&SPI_read,count)/数据从内核空间拷贝到用户这间return-EFAULT;returncount;/写函数staticssize_tSPI_onlywrite(structfile*file,constchar*buf,size_tcount,loff_t*ppos)if(countBUFNUM)count=BUFNUM;if(copy_from_user(&SPI_write,buf,count)/数据从用户空间拷贝到内核空间return-EFAULT;for(num=0;num1;

11、iopdata=iopdata0x1000;/时钟输出returncount;/中断响应函数staticintSPI_irq(intirq,void*dev_id,structpt_regs*regs)intpnd=intpnd|0X1;/清中断位wake_up_interruptible(&SPI_wait);/唤醒睡眠队列return1;/字符设备驱动接口staticstructfile_operationsSPI_fops=owner;THIS_MODULE,read:SPI_onlyread,write:SPI_onlywrite,;/初始化函数int_initSPI_init

12、(void)register_chrdev(29,SPI&SPI_fops);/设备注册函数init_waitqueue_head(&SPI_wait);if(!request_irq(0,SPI_irq,SA_SAMPLE_RANDOM,SPINULL)/中断申请return-EFAULT;iopmod=(iopmod&0xffffe7ff)=0x1800+iopmod;/设置通用I/O口模式iopcon=(iopcon&0xffffffe0)+0xle+iopcon;/设置通用I/O模式enable_irq(0);/开中断return0;module_init(SPI_init);MODULE_LICENSE(GPL);EXPORT_NO_SYMBOLS;结语实验证明,模拟的SPI口接收发送数据准确可靠。用户程序可以以设备文件的形式进行访问,与标准的SPI接口无异。该方案对于嵌入式家庭网关的研究,以及运用uClinux作为操作系统的嵌入式模拟通信接口,有一定的参考价值。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!