Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
PHẦN 1
GIỚI THIỆU MẠNG CÔNG NGHIỆP
1.GIỚI THIỆU MẠNG CÔNG NGHIỆP
Trong nhiều thập niên năm qua việc ứng dụng mạng thông tin vào lónh vực
công nghiệp đã bùng nổ rất mạnh mẽ.Các hệ thống mạng phát triển rất mạnh
và đa dạng .
Việc ứng dụng mạng công nghiệp đã mang lại những lợi ích rõ nét
Chi phí lắp đặt hệ thống
Nhân công điều hành
Tiện ích quản lý hệ thống
Cải thiện môi trường làm việc
Mở rộng ra từ mạng cục bộ ,các hệ thống cục bộ có thể kết nối với nhau tạo ra
một mạng diện rộng .Như vậy chỉ với một máy tính có thể quản lý tập trung
mạng điều khiển .
Trang 1
WC
Mô hình hệ thống mạng điều khiển
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
Có thể xem mô hình mạng công nghiệp gần giống như các mô hình mạng
khác.Tuy nhiên có sự đa dạng trong kiểu dữ liệu mạng công nghiệp .
Các dạng dữ liệu trong mạng công nghiệp :
Tín hiệu máy đang hoạt động hay đang nghỉ
Số máy trong mạng
Tình trạng tốt hay xấu của từng máy
Chu kỳ hoạt động của máy
Cấu hình của các máy
Tín hiệu kiểm tra mạng
Thông tin trả lời từ các máy
.......................
đổi (Adapter), card mạng, giao thức kết nối, giao thức truy cập mạng. Lớp này
có nhiệm vụ trao đổi dữ liệu giữa các máy chủ và mạng.
TCP/IP không đònh nghóa lớp này mà dùng các chuẩn có sẵn như IEEE, X25,
RS232, ETHERNET,...
Trang 3
Application
Presentation
Session
Transport
Network
Data link
Physical
Application
Transport
Internet
Network
access
Cấu trúc 4 lớp của mô hình TCP/IP so với mô hình OSI
OSI TCP/IP
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
2.1.2.Lớp liên mạng (Internet Layer):
Chòu trách nhiệm cung cấp đòa chỉ logic cho giao diện mạng vật lý để điều
khiển việc truyền thông tin giữa các máy. Lớp này nhận dữ liệu từ lớp vận
chuyển, đóng gói thành các IP datagram với các IP header chứa thông tin của
việc truyền dữ liệu, sau đó chuyển xuống lớp truy xuất mạng để truyền. Lớp
này cũng cung cấp các giao thức để thông báo lỗi.
2.1.3.Lớp vận chuyển:
Lớp vận chuyển có nhiệm vụ phân phát dữ liệu tới các chương trình ứng dụng
khác nhau. Lớp này có hai nghi thức quan trọng là TCP (Transmission Control
Protocol) và UDP (User Datagram Protocol). Đơn vò dữ liệu ở lớp này là các
phát lại của mỗi trạm là ngẫu nhiên nên có thể tránh được việc tái xung đột,
tuy nhiên nếu điều này xảy ra, các trạm sẽ phải chờ một lần nữa với thời gian
chờ ngẫu nhiên tăng lên để giảm xác suất tái xung đột.
2.2.2.Đònh dang khung Ethernet:
Preamble
(8 byte)
Destination
Address
(6 byte)
Source
Address
(6 byte)
Type
(2 byte)
Data
(46->1500
byte)
FCS
(3 byte)
2.2.2.1.Preamble :
Gồm 8 byte:
7 byte đầu có giá trò 10101010 có chức năng đồng bộ cho phần cứng.
1 byte có giá trò 10101011 báo cho biết bắt đầu của 1 frame.
2.2.2.2. Destination Address và Source Address:
Đòa chỉ nguồn và đòa chỉ đích, mỗi trạm Ethernet được gán một đòa chỉ 48 bit cố
đònh.
2.2.2.3.Type :
Xác đònh loại dữ liệu.
2.2.2.4.Data :
Chứa dữ liệu nhận được từ lớp trên. Trường dữ liệu bao gồm IP Header, TCP
Frame
control
Destina
tion
address
Source
address
Data
FCS End
Frame
status
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
PHẦN 2
GIỚI THIỆU GIẢI THUẬT TÍNH CRC
KIỂM TRA DƯ THỪA THEO CHU KỲ CRC
Trường kiểm tra lỗi FCS được thực hiện qua giải thuật tính CRC.Các CRC khác
nhau ứng với các đa thức sinh ứng khác nhau.
CRC8 =X^8 + X^2 + X^1 + 1
CRC16=X^16+ X^15+ X^2 + 1
CRC32=X^32+ X^26+ X^23+
X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X+11
Thuật toán tính CRC:
M:Bản tin cần phát
R:Phần dư kết quả chia
G:Đa thức sinh
Thực hiện phép tính :
(M*2
n
) / G =Q + R /G
00 00001110 10101
1000 00111
0110 100100
100 000111
010 1000111
10 0000111
00 10000000 1
10000011 1
00000011 0000000
10 0000111
01 00001110
1 00000111
0 00001001 00000
1000 00111
0001 00111000
1 00000111
0 00111111
Trang 8
100000111
1111000000011101
0000110001001
FCS=00111111B
8 bit dòch
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
PHẦN 3
ĐIỀU CHẾ VÀ GIẢI ĐIỀU CHẾ FSK
Hệ thống mạng được thiết kế đặt trong môi trường công nghiệp .Do vậy dữ liệu
rất dễ bò nhiễu và suy hao .Để tăng độ tin cậy trong việc truyền dữ liệu ,tín
hiệu từ máy tính gửi xuống cần được điều chế và giải điều chế .
KHẢO SÁT ĐIỀU CHẾ FSK
đề cập đến .Các khối cơ bản của VHDL được sử dụng hầu hết trong các thiết
kế,các thuật ngữ sau được đònh nghóa cho các khối cơ bản trong VHDL.
Entity –Tất cả các thiết kế trong một hợp phần gọi là entity.Entity là khối cơ
bản nhất trong một thiết kế .Mức trên cùng của một thiết kế gọi là top-level
entity.Nếu chúng ta thực hiện một thiết kế được phân cấp ,thì dưới các mô tả
mức cao là các mô tả có mức thấp hơn (lower-level).Các mô tả mức thấp hơn
gọi là lower-level entity.
Architecture-Tất cả các entity đều tồn tại phần mô tả kiến trúc thiết kế bên
trong nó (Architecture description). Trong phần kiến trúc thiết kế này các hoạt
động của một hệ thống được mô tả một cách rõ ràng .Một entity có thể bao
gồm nhiều phần kiến trúc thiết kế khác nhau.Một kiến trúc có thể là thiết kế
theo dạng hành vi ,trong khi đó một kiến trúc khác có thể được thiết kế theo
dạng cấu trúc.
Trang 10
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
Configuration –Các mô tả configuration nhằm mục đích chỉ đònh architecture
body nào được sử dụng trong thiết kế trong số nhiều architecture mà một entity
có thể có và chỉ đònh cặp entity_architecture body nào sẽ tương ứng với các
phần khai báo trong architecture đó .Các mô tả configuration có thể coi là danh
sách các phần được sử dụng trong thiết kế .
Package- Một package được coi là một tập hợp các kiểu dữ liệu được sử dụng
thường xuyên trong thiết kế và các chương trình con trong thiết kế hệ thống.
Attribute-Các thuộc tính của dữ liệu được mô tả kèm theo các đối tượng VHDL
hoặc đònh nghóa trước dữ liệu cho các đối tượng trong VHDL.Ví dụ như nhiệt
độ giới hạn khi hoạt động của một thiết bò nào đó .
Generic –Generic là một thuật ngữ trong VHDL mô tả cho các thông số được
dùng trong entity.Giả sử trong mô tả ở mức các cổng tồn tại các thông số là độ
trễ cạnh lên và cạnh xuống của xung ,các giá trên được mô tả qua GENERIC
phù hợp với các ENTITY.
Process-Đây là thuật ngữ sử dụng thường xuyên trong các thiết kế.Process là
PORT (set,reset:IN BIT;
q,qp:OUT BIT);
END rsff;
Từ khóa ENTITY là từ khóa bắt đầu cho một khai báo ENTITY.Qua khai báo
cho ENTITY trên chúng ta biết được những thông tin cho thiết kế rsff:
Tên của khai báo ENTITY là rsff.
ENTITY trên khai báo phần thiết kế bao gồm 4 ngõ (vào/ra) thông qua từ
khóa PORT.
Từ khóa IN mô tả có 2 ngõ set và reset là ngõ vào có dạng tín hiệu là BIT.
Từ khóa OUT mô tả có 2 ngõ qvà qb là ngõ có dạng tín hiệu là BIT.
Các khai báo trong ENTITY cho các ngõ tương ứng với các mô tả trong ký hiệu
được dùng trong CAE.
ENTITY là cách mô tả tổng quát nhất cho các giao tiếp của thiết kế với các
thiết bò bên ngoài.Các thông số cho một giao tiếp bao gồm số các ngõ
(vào/ra),hướng của các ngõ ,dạng tín hiệu tồn tại ở các ngõ .
Trang 12
SET Q
RESET QB
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
1.2.2.Tương quan giữa các schematic và architecture
Schematic cho rsff được mô tả tương ứng trong VHDL là architecture.Các
architecture đều xây dựng trên nền tảng là các ENTITY và chúng mô tả các
hành vi ứng xử trong ENTITY đó .Để thực hiện mô tả ARCHITECTURE cho
ENTITY rsff ta có thể thực hiện như sau:
ARCHITECTURE netlist OF rsff IS
COMPONENT nand
PORT(a,b:IN BIT;
C:OUT BIT;
END COMPONENT;
BEGIN
U1:PORT MAP(a=>set,
B=>qb,
C=>q);
U2:PORT MAP(a=>reset,
b=>q,
c=>qb);
1.2.4.Các mô tả hành vi (Behaviour)
Để mô tả với cùng một mạch như vậy ta có thể sử dụng thiết kế dạng hành
vi.Đây là dạng thiết kế mô tả một hệ thống thông qua việc thể hiện rõ cách
thức hoạt động ,hành vi ứng xử của nó .Thiết kế này được thực hiện bằng một
tập hợp lệnh được thực thi theo thứ tự.Khi ta chọn kiểu thiết kế dạng hành
vi,cấu trúc của hệ thống hoàn toàn không thể hiện .
ACRCHITECTURE behaviour OF rff IS
BEGIN
q<=not (qb AND set);
qb<=NOT(q AND reset);
END behaviour;
1.2.5.Các mô tả hành vi tuần tự
Trong cách thiết kế bằng mô tả hành vi trên,các chức năng của rsff không được
nêu rõ trong những mô tả VHDL.Ngoài 2 cách thiết kế trên ,chúng ta còn cách
thiết kế thứ 3 dựa vào mô tả chức năng theo thuật toán của thiết bò thông qua
sử dụng cú pháp PROCESS.Các mô tả đó có thể trình bày như sau :
ARCHITECTURE sequential OF rsff IS
BEGIN
Trang 14
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
IF set =’1’ AND reset =’0’ THEN
q<=’0’;
qb<=’1’;
ELSIF set =’0’ AND reset =’1’THEN
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
1.2.9.Các mô tả Configuration
Một ENTITY có thể có hơn một ARCHITECTURE,phần này cung cấp sự chỉ
đònh ARCHITECTURE nào đó được sử dụng trong thiết kế trong số nhiều
ARCHITECTURE mà một ENTITY có thể có,và chỉ đònh cặp ENTITY-
ARCHTECTURE nào ứng với các COMPONENT được khai báo .Ta xét ví dụ
sau :
CONFIGURATION rsffcon1 OF rsff IS
FOR netlist
FOR U1,U2:nand USE ENTITY work.mynand(version1);
END FOR ;
END rsffcon1;
Thiết kế dùng mô tả CONFIGURATION thường dùng trong thiết kế phân
cấp.Chúng ta có thể hiểu phần CONFIGURATION trong ví dụ trên như sau
:CONFIGURATION tên là rsffcon1.Hai thành phần U1 và U2 kiểu NAND
được sử dụng trong kiến trúc netlist,sử dụng ENTITY mynand,với version1
trong thư viện có tên là WORK.ENTITY rsff có ARCHITECTURE là netlist,và
thành phần nand có ENTITY là mynand và ARCHITECTURE là version1.
Trang 16
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
PHẦN 5
TỔNG QUAN FPGA
FPGA :
FPGA thích hợp cho nhiều ứng dụng vì chúng có tốc độ thích hợp (tầm xung
nhòp: 50 đến 200 MHz). Các FPGA tiêu biểu chứa nhiều bản sao của một tế
bào hay phần tử logic (LE=Logic Element) cơ bản lập trình được. Một phần tử
logic (LE) có thể cài đặt một mạng các cổng logic mà đưa vào 1 hay 2 flip flop.
Các LE được sắp xếp theo cột hay ma trận trong chip.
Để thực hiện các phép toán phức tạp, các LE được nối lại bằng cách dùng
mạng nối kết lập trình được. Mạng này chứa các kết nối hàng và/hoặc cột cho
Hai biến thể field-programmable của PROM là Erasable Programmable Read-
Only Memory (EPROM) và Electrically Erasable Programmable Read- Only
Memory (EEPROM) cung cấp 1 ưu điểm: cả hai có thể được xóa và lập trình
lại nhiều lần.
Một loại thiết bò lập trình được khác, được thiết kế đặc biệt để thực hiện các
mạch logic là Progammable Logic Device (PLD). Một PLD thông thường gồm
một dãy các cổng AND được nối với một dãy các cổng OR. Mạch logic có thể
được thực hiện trong PLD theo dạng tổng của tích (sum-of-products). Loại cơ
bản nhất cua PLD là Progammable Array Logic (PAL): PAL gồm một khối các
cổng AND lập trình được nối đến một khối các cổng OR cố đònh. Một loại PAL
khác linh hoạt hơn là Programmable Logic Array (PLA). PLA cũng có cấu trúc
giống PAL nhưng các kết nối là lập trình được. PLA có cả 2 loại mask
programmable và field programmable.
Cả 2 loại PLD trên cho phép thực hiện các mạch logic có tốc độ cao.Tuy nhiên
cấu trúc đơn giản của chúng chỉ cho phép thực hiện các mạch logic nhỏ.
Loại thiết bò lập trình được tổng quát nhất gồm 1 dãy các phần tử rời rạc có thể
được kết nối với nhau theo mô tả của người sử dụng. Loại thiết bò này được gọi
là Mask–Programmable Gate Array (MPGA). Các MPGA phổ biến nhất gồm
các hàng transistor có thể được kết nối để thực hiện các mạch logic. Các kết
nối do người dùng đònh nghóa này có thể có trong cả các hàng và các cột. Ưu
điểm chính của MPGA so với PLD là nó cung cấp 1 cấu túc tổng quát cho phép
thực hiện các mạch logic lớn hơn. Vì cấu trúc kết nối của chúng có thể mở rộng
cùng với số lượng logic.
Field Programmable Gate Array (FPGA) đã kết hợp khả năng lập trình của
PLD và cấu trúc kết nối có thể mở rộng của MPGA. Do đó các thiết bò lập trình
loại này có mật độ logic cao hơn.
Trang 18
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
Cấu trúc FPGA
Mô hình FPGA
số FPGA cung cấp nhiều kết nối đơn giản giữa các logic block, một số khác
cung cấp ít các kết nối hơn nên routing phức tạp hơn .
Ứng dụng của FPGA
FPGA có thể sử dụng trong hầu hết các ứng dụng hiện đang dùng MPGA, PLD
và các mạch tích hợp nhỏ (SSI).
Các mạch tích hợp ứng dụng đặc biệt (ASICs)
FPGA là một phương tiện tổng quát nhất để thực hiện các mạch logic số.
Chúng đặc biệt thích hợp cho việc thực hiện các ASICs. Một số ví dụ ứng dụng
đã được công bố: FIFO 1 megabit, giao tiếp vi kênh IPM PS/2, bộ truyền /nhận
dạng T1,…
Thiết kế mạch ngẫu nhiên
Mạch logic ngẫu nhiên thường được thưc hiện bằng PAL. Nếu tốc độ của mạch
không đòi hỏi khắt khe (các PAL nhanh hơn hầu hết các FPGA) thì mạch có
thể được thực hiện bằng FPGA. Hiện nay, FPGA có thể thực hiện 1 mạch cần
từ 10 đến 20 PAL.
Trang 20
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
Thay thế các chip SSI cho mạch ngẫu nhiên
Các mạch hiện tại trong các sản phẩm thương mại thường chứa nhiều chip SSI.
Trong nhiều trường hợp các chip SSI này có thể được thay thế bằng FPGA và
kết quả là giảm diện tích của board mạch.
Chế tạo mẫu
FPGA rất lý tưởng cho các ứng dụng tạo mẫu sản phẩm .Giá thành thực hiện
thấp và cần thời gian ngắn để thực hiện thiết kế,cung cấp nhiều ưu điểm hơn so
với các phương pháp truyền thống để chế tạo mẫu phần cứng. Các bản mẫu
ban đầu có thể được thực hiện rất nhanh và những thay đổi sau đó được thực
hiện dễ dàng và ít tốn kém .
Máy tính dựa trên FPGA
Một loại máy tính hoàn toàn mới có thể được chế tạo với các FPGA có thể tái
lập trình ngay trên mạch FPGA. Các máy này có một mạch chứa các FPGA với
Hiển thò thông tin các trình soạn thảo .
Trang 22
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
Project Manager hỗ trợ các họ Xilinx sau
Virtex
VirtexE
Virtex2
Spartan
Spartan2
SpartanXL
XC9500
XC9500X (XL/XV)
XC5200
XC4000XLA
XC4000E
XC4000L
XC4000X (EX/XL/XLA/XV)
XC3000A
XC3000L
XC3100A
XC3100L
Trình soạn thảo hình vẽ
Trình soạn thảo hình vẽ cho phép mở và kết nối đa cửa sổ cùng mở một
lúc.Tính năng này được ứng dụng đối với các tệp có kích thước lớn .
Trang 23
Nghiên cứu và thiết kế mạng công nghiệp sử dụng FPGA và CPU 89S8252
Trình soạn ngôn ngữ
Trình soạn thảo cho phép thiết kế bằng ba ngôn ngữ khác nhau VHDL, ABEL
và Verilog.
Trang 24