Professional Documents
Culture Documents
ARM9 S3C2410
USB
Linux
Abstract
With the rapid development of the electronic technology, multimedia technology and network
technology, video surveillance system is going to the embedded, digital, networked direction.
Taking full advantage of LSI and networks of scientific and technological achievements, the
embedded video surveillance system achieves delicate volume, stable performance, facilitates the
communication of the surveillance equipment.
The project is in arm microprocessor platform, and porting embedded linux system in it. It
completes video capturing, compression, transmission and control tasks. The hard devices select
the ARM9 (S3C2410) as the main processor in the system; and the USB camera as the device of
video capture. In order to reduce the cost of the product, Based on the architecture and with the
open source software in linux, the whole embedded video surveillance system is implemented.
Keywords: Video Surveillance Embedded system ARM9 Linux video for linux
1 ..................................................................................................................................................4
1.1 ...............................................................................................................................4
1.2 ..................................................................................................................4
1.3 ..................................................................................................................5
2 .................................................................................................................5
2.1 ..............................................................................................................5
2.2 ......................................................................................................................6
3 .....................................................................................................................7
2.1 LINUX ....................................................................................................8
2.2 ..............................................................................................................9
2.3 BootLoader ......................................................................................................................9
3.4 Linux .....................................................................................................11
3.5 ................................................................................................................12
4 ...............................................................................................................13
4.1 Linux .............................................................................................13
4.2 ................................................................................................14
4.3Linux ..........................................................................................15
4.4USB ................................................................................16
5 Linux .........................................................................................................................17
5.1 ........................................................................................................17
5.2 v4l ..................................................................................................................17
5.3 LCD ..................................................................................................19
6 ..................................................................................................20
6.1 TCPIP .............................................................................................................21
6.2 webserver ..............................................................................22
6.3 .........................................................................................................................23
1
1.1
Linux
1.2
()
1.3
Linux
Linux
:
(1) ;
(2) Linux
(3) USB Linux ;
(4) Vidoo4Linux ;
(5) webserver
(6)
2
2.1
LCD
5
PC
ov511 s3C2410
ARM , UP-NET ARM2410-S
10/l00M USB
USB
SDRAM
S3C2410X
NAND
SRAM
Flash
Jtag
2-1
2.2
Linux ARM
::Linux
;
TCP/IP API
API : API
SOCKET
USB
2-2
USB
Bootloader
2-2
3
Linux Linux
PC Linux Redhat9.0
Linux
2.1 LINUX
Linux UNIX POSIX
Linux Linux
Linux
Linux
Linux
Microsoft Windows
Limix GPL
Linux GPL CC++Java
Linux
Linux Linux Unix Unix
Linux gccg++
Linux
Intenet Linux
x86AlphaSparcMipspowerPCARM
Linux
Linux
2.2
PC
2.95.3 arm-linux-gcc
2.3 BootLoader
Bootloader
Bootloader
2-1bootloader
Bootloader
Bootloader Bootloader
Bootloader
CPU Bootloader
3.4 Linux
Linux
Linux
makemenucoonfig
(1)makeclean
(2)makedep
(3)makezlmage
/arch/arm/boot zImage
minicom Bootloader Linux
flash tftp
tftp flash kernel zImage
11
3.5
NANDFlash
Flash
Flash
Linux (
)Linux
Linux
RAMFSJFFS2CRAMFS
CRAMFS Linux2.4
Flash
Flash RAM
RAM CRAMFS
image kernel/script/cramfs image
mkcramfs
/mnt image root.cramfs
./mkcramfs /mnt root.cramfs
CRAMFS kemel make menuconfig
MTD(MemoryTechnologyDeviee)
insmod
CRAMFS
mtdblock0 31 30
kernel/include/linux/mtd/mtd.h
CRAMFS :
tftp flash root root.cramfs
12
4
4.1 Linux
API
(1)
(2)
(3)
(4)
Linux
(cb)
2
Linux
(1)
(DMA )
(2) IO
13
(3) Linux
Linux
4.2
I/O
(1) open IO
open open IO
open
ssize_t(*read)(struet flle*,char*,size_st,loff_t*):
(4)write IO
14
4.3Linux
Linux
;.o (module)
/dev
mknod
/proc/devices
4-1
/etc/modules.conf
Mknod
Insmod
read writ
4-1
15
4.4USB
ov511 zc301 zc301
ov511
s3c2410 ov511
Linux Video for Linux( V4L)
USB
Linux
/dev/video0 81
mknod /dev/video0 C 81 0 4-2
4-2
16
5 Linux
5.1
USB
Linux Video4Linux
APIVideo4Linux
/dev/video
0-63
/dev/radio
64-127
AM/FM
/dev/vtx
193-224
/dev/vbi
224-239
VBI
/dev/video usb hub
usb host cat/proc/devices video capture device
81 ls -l/dev video0 0 mknod
/dev/video0 c 81 0V4L /dev/video USB
/dev/v4l/video0 V4L In -s/dev/v4l/video0
/dev/video0 V4L video video0
5.2 v4l
5.2.1Video4linux
Video4linux
1 video_capability
17
name[32] //
maxwidth maxheightminwidthminheight
Channels //
type // capture VID_TYPE_CAPTURE
Int camere_get_capability(camera_device*vd){
if(ioctl(vdfdVIDIOCGCAP&(vdcapability))<0){
Permr(camer_get_cability:):
Return -1;
}
Return 0; }
2video_picture
video-picnire
Int camere_get_picture(camere_device*vd){
if(ioetl(vdfdVIDIOCGPICT&(vdPicture))<0){
Perror(camera _get_picture:)
Return -1;
}
Return 0}
(3) video-picture VIDIOCGPICT
VdPicture.colour=65535;
if(ioctl(vdfdVIDIOCGPICT&(vdpicture))<0){
Perror(camere_get_pIcture:):
Return -1;}
(4) channel vdc ability :
for(i=0 :I <vdcapability.channels: i++)
{
Vdchannel[i].channel=i:
if(ioetl(vdfdVIDIOCGCHAN&(vdchannel[i]))<0){
18
Perror(camera_get_channel:):
Return -1;}
5.2.2
: read() mmap()read
mmap ()
mmap () I/O
mmap()
mmap () mmap ():
ioctl VIDIOCSFBUF
video_mbuf, video_mmap
memset(&(vd->videombuf)0sizeof(vd->videombuf))
vd->map=(unsigned
PROT_WRITEMAPSHAREDvd->fdff_t offset)
0
offset
(PROT_READ()PROT_WRITE()PROT_EXEC(
)) MAP_SHARED MAP_PRIVATE
mmap()
ioctl VIDIOCMCAPTURE
VIDIOCSYNC
1
5.3 LCD
USB
19
/dev/video0
fd = open ("/dev/video0", O_ RDWR); fd
( 1)
ioct1 ( fd, VIDIOCGCAP, & vid_caps) struct video capability
vid_caps
ioctl(fd, VIDIOCGPICT, & vid_tic) voideo_picture
LCD
TCP
TCP
20
6.1 TCPIP
TCPIP NI NJT-
(1)
TCP
(2)
TCP
TCP
(3)
TCP
(4)
TCP TCP
TCP (window)
TCP
(5)
TCP
TCP
21
Socket()
Bind()
Socket()
Listen()
connect()
Accept()
Recv()
send()
Send()
recv()
Close()
Recv()
6-1 TCP
6.2 webserver
Webserver HTTP Server HTTP HTTP
TCP/IP
HTTP Universal Resource LocationURL
URL +
Linux socket webserver
socket()
bind() IP
connect()listen()
socket
accept() socket
webserver 80 80
22
accept()
YUV420P JPEG
JPEG
if((size=(yuv420p_to_jpeg(&imagebmp,imageptr,640,480,20)))<0)
{
printf("Error:write jpeg error!");
}
if(!fork())
{
if(revbuf[5]==' ')
send(nsockfd, imagebmp, size, 0);
}
PC IP IP
PC IE IP http://192.168.0.115:81/
JPEG
6.3
ARM Linux
Webcam
webcam_server Linux webcam_server-0.50.tar.gz GNU
./configure Makefile src
Makefile CC /usr/local/arm/3.4.3/bin/arm-linux-gcc make
webcam_server 2410
Windows Active webcam PC IP
IP Active webcam Tools->Create Web Page
settings
Video Device Network IP CameraPreview Frame Rate8 framesper
secCamera ModelActive WebCam HTTP ServerIP Adress or URL192.168.0.115
23
IP Port8888
PC 1
320240.AWLive
C:\Program Files\Active WebCam\Gallery Active WebCam Video
Record
24