找回密码
 注册
关于网站域名变更的通知
查看: 354|回复: 1
打印 上一主题 下一主题

[毕业设计] 单片机的网络应用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-20 09:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
+ F6 @4 w' L- y! u: H! m1 A
摘要1 @( Q$ b( c$ [7 h+ V6 ^+ `( n5 P
主要阐述了单片机用于网络应用时,在确定架构方案时应着重考虑的几个问题,这也是确定系统性价比的重要因素。
# Y* ?; m9 t- `) [7 C9 `5 p包括RTOS的使用问题;阻塞或非阻塞调用的问题;采用单线程设计还是采用多线程设计的问题;存储器管理问题;采用何
- P6 y( ~9 i5 i# a  Y! G种网络接口的问题。并例举了典型的单片机网络应用系统的软硬件架构。在此架构基础上可进行多种用途的单片机网络应7 V$ b) [8 d, \
用系统的开发。! o2 o4 |* }: i- o8 D

' |0 M& e& T% ?2 ?关键词:单片机,网络,RTOS,TCP/IP,阻塞,线程
# V8 Q6 X3 R# ?. M( y  C! E+ a
! E6 e* j9 ~$ I" g4 h1 M$ U以单片机作为嵌人式系统的控制处理器件,实现嵌人式系
: r( y; V2 ]  z3 u3 h. E统接人Internet的功能,从而实现远程控制、监视等服务,是目
) ]5 d. T# @; [4 Q5 ~7 d% U前单片机应用的一个方面。如何架构一个高性价比,经济实用的
! U9 z% w7 C8 M. o9 c, e, r8 F$ q* Q系统是值得思考的问题。) V" v# E. J7 ?, A
1首要考虑的几个问题. S. }0 R  S& _& E; i, y" Q
1.1是否使用实时操作系统# m" u0 j0 c( Q0 A; G+ U, k$ m2 z/ c
对于嵌人式系统是否使用操作系统-直是一个颇具争议的9 m3 R0 h; k+ f( `* |0 H
问题。操作系统提供了基本的服务层,简化嵌人式应用程序开发
# n# x: w' B/ }6 V者的工作。从另一个角度看,OS对于资源的使用有较多约束,导0 i2 O3 A" Q4 b7 C( y" E' _3 ]5 n
致最终设备的费用提高。对于一些硬件资源比较有限,处理能力3 ]& j: a9 F" d0 C5 b, n8 D
低的mcu来说,使用RTOS是-一个很大的负担。现在提出不使, ~5 y% \! D/ ~- \- z# S  f
用操作系统或核心是非常困难的,特别是当设备必须使用因特
0 z7 O) L" b9 {5 ~网协议通信时。TCP/IP 栈会给嵌人式系统设计设置其他约束。
& b/ X) g6 L: j1 h4 y" |/ I4 f5 B如:TCP/IP栈必须有一个相对的准确时间源,以便进行时间管
; m. j5 {  I( h8 `0 Z理,处理各种发生在栈中的超时和定时活动。栈还必须对数据包
7 n* Z: f5 P, r6 L有一个资源管理系统,有可能是一个标准的动态存储管理系统。
' G6 w2 Y* m( z1 K( g最理想的情况是使用本身自带TCP/IP协议栈的操作系" u# v5 v% K9 r
统。例如,全嵌人式的Linux版本(μCLinux)自动包括一个标准
$ ~% J0 p# ?1 e2 ~  K的TCP/IP栈。这种模式的最大优点是软件的可使用性。桌面系
5 M: |% b/ W' g8 h3 G9 D, |$ \0 j统和嵌入式设备上的Linux版本实际上是相同的,所以网络协# s, T; R. W! U2 c, j7 [! A
议和应用程序可以很快地和十分容易地移植。这意味着针对标
( [. p6 {6 `, A- S1 P准桌面系统使用的大量代码可以十分容易地经简化用于嵌人式
9 L! J. Y: u* k/ e环境,节省了时间和精力。" N) G( D5 Z8 X2 E5 C
即便是μCLinux这样高度优化的、代码紧凑的嵌人式Lin-: q, Y- u# M1 G! U' I  ^- y6 @
ux,其编译后产生的目标代码也在几百K的数量级,显然并不" c& h# Q* _; n# D: a! t
适用于低配的单片机中。但这并不意味着没有RTOS就无法用
* f9 c: w9 B0 a3 h/ G7 k1 i% x% b0 R单片机实现TCP/IP协议,意味着- -些使用低档单片机的嵌人0 u' S3 E5 M3 v7 Z0 j8 Q
式系统失去接人Internet的能力。只要可以提供所需的服务(时7 n! Q/ E4 w& P3 k  z- ~
钟、存储管理器等),即便没有RTOS,也可使用低档单片机如51
0 y4 I  M+ O  ]! {, p等实现TCP/IP协议栈的功能,完成TCP/IP协议中的ARP、
) @8 q" ^2 c/ Z7 C1 cUDP、TCP、IP等协议。这样的实现对资源的要求较少,且实现速1 p4 o; T2 ?# J; ^4 m& s! n

, t/ S' Q( p; I1 v; p度较快。5 ~! J! P+ K7 v/ L% S% J
1.2阻塞或非阻塞调用
1 V$ z# f/ T" ]7 h& O阻塞调用是指调用结果返回之前,当前线程会被挂起,函数只; @! g( e# d  D9 J3 Q2 U
有在得到结果之后才会返回。非阻塞和阻塞的概念相对应,指在不
$ ~7 x2 b) K$ E4 s* i2 U$ i2 s- G能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。5 \  v4 H. s) n6 Q
标准的套接字层要定义阻塞语义,如果套接字中没有可用
! l5 X4 s4 H( \! N4 m数据,对其进行的读调用将会引起调用阻塞,直到有可用的数
0 q/ i& [% F" O. H( _+ M0 o据。写调用也是如此。如果写的字节数大于缓存中可用空间,写.2 W# G, v" ]; m; G
调用被阻塞,直到写缓存中有足够的空间。如果无法使用操作系
6 K" ?6 c* v$ q( A统,那么对于这些阻塞语义也不可用。套接字层也可以以非阻塞
' O0 T+ d6 ?8 i, G1 S- ?/ j3 w( m方式工作,但效率有可能下降。有些商用的协议栈可以提供回调
" {: _& j& w5 t% q. \& b机制,比如当针对某个套接字发生了某些类型事件时,就调用用2 q' v. K/ Z! a; o5 T5 i0 t
户定义的应用程序。$ \: q( ~; a# y- a
1.3单线程和多线程设计
( z* q* ?9 X3 M当使用RTOS时,ICP/IP协议栈可以定义成单任务,或者
( T- v! n6 C# _! S! B根据协议的不同层来进行划分。大多数情况,在栈和数据链路层.
; C0 t* g, t4 k1 t+ H之间存在着区别。媒体访问控制(MAC)或串行端口(针对PPP/; b  F3 A. u+ y! C8 z. O7 N$ H
SLIP)因为其异步性质,通常是在TCP/IP栈软件上划分。3 d# A' z& \# @8 k
1.4存储器管理问题* w! I0 ^1 Z7 G$ z
嵌入式系统在设计中要考虑降低成本。这就意味着可以使
& {5 g" E# l" M, k用的硬件资源也会相应减少,比如存储器件,闪存/非易失存储  |/ N1 w$ ]1 @- B' q1 m7 \+ `
和RAM。RAM数量小意味着要特别注意确定TCP/IP栈用来分) r' W1 G5 d" d* {& O( g! ?+ I
配数据包的方法。
. P) z, l% t) L& d$ W分配数据包的方法通常可以在嵌人栈中配置,特别是对OS+ y+ ]% a1 a7 F# {- i) O
核心未知的情况下。可以采用的两种主要方法是动态分配或者
" T* o  ^* o( s- M! Y预先分配。+ e( V5 [6 J3 q3 o
包的动态分配意味着只要需要包,就可以通过堆栈子系统, L9 `1 c/ {' C7 a$ E5 J
进行动态分配。堆栈只不过是可以根据应用程序的需要划分成3 B4 z. j/ V$ P9 V% A
小块的一一个大块的存储器。堆栈还被用做一般化资 源管理,所以
, {: b/ I$ _( i+ f; t它是一个系统存储器管理的基本基地。动态存储器管理存在的
7 y, W9 f# v4 E9 K基本问题是垃圾收集。当包返回到堆栈时,只要这可能是大的可, P% i% E9 H0 p

! [9 [/ D6 f6 c4 }6 y" T9 Y1 {' d0 n9 h- `! ]  h, {* U; r: V

% Q: e/ v& a7 |" x5 x附件下载:
游客,如果您要查看本帖隐藏内容请回复

7 r# p/ V, Q/ M" A. b  q
; g- o7 u- k& S4 b; z, R4 a7 Q

该用户从未签到

2#
发表于 2020-3-20 09:19 | 只看该作者
嵌入式系统在设计中要考虑降低成本
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-30 07:43 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表