Nghiên cứu và thiết kế mạng công nghiệp sử dụng chip fpga và cpu 89s8252
Trang 1Việ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 ramộ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 trungmạng điều khiển
Mô hình hệ thống mạng điều khiển
Trang 2Có thể xem mô hình mạng công nghiệp gần giống như các mô hình mạngkhá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
2.KHẢO SÁT GIAO THỨC VÀ CẤU TRÚC MẠNG 2.1.Mô hình TCP/IP:
Mô hình TCP/IP (Transmission Control Protocol / Internet Protocol) là mô hìnhcho mạng Internet được sử dụng rộng rãi nhất hiện nay.
Máy tính
Mô hình kết nối các mạng cục bộ
Trang 3Cấu trúc các lớp của TCP/IP có một số điểm tương đồng với mô hình OSI(Open System Interconnect) nhưng có những bỏ bớt một số lớp So với 7 lớpcủa mô hình OSI, cấu trúc TCP/IP chỉ có 4 sau đây:
Lớp truy xuất mạng : Network Access Layer.Lớp liên mạng : Internet Layer.
Lớp vận chuyển : Transport Layer.Lớp ứng dụng : Application Layer.Chức năng của các lớp :
2.1.1.Lớp truy xuất mạng (Network Access Layer):
Lớp truy xuất mạng đại diện cho các bộ phận kết nối vật lý như cáp, bộ chuyểnđổi (Adapter), card mạng, giao thức kết nối, giao thức truy cập mạng Lớp nàycó 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,
NetworkData linkPhysical
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
Trang 42.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ềukhiể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ậnchuyển, đóng gói thành các IP datagram với các IP header chứa thông tin củaviệc truyền dữ liệu, sau đó chuyển xuống lớp truy xuất mạng để truyền Lớpnà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ụngkhác nhau Lớp này có hai nghi thức quan trọng là TCP (Transmission ControlProtocol) và UDP (User Datagram Protocol) Đơn vị dữ liệu ở lớp này là cácbản tin.
2.1.4.Lớp ứng dụng:
Đây là lớp cao nhất, dùng để truy xuất các dịch vụ trên mạng bằng các chươngtrình ứng dụng Một chương trình ứng dụng sẽ tương tác với các nghi thức củalớp này để gửi và nhận dữ liệu Các dịch vụ trên lớp này gồm có: truyền thư(SMTP), truyền nhận file (FTP) , truy cập từ xa (TELNET),
2.2.Nghi thức Ethernet:
Lớp truy xuất mạng trong TCP/IP sử dụng các nghi thức mạng có sẵn như :Ethernet, IEEE 802, X25, Frame Relay, ATM.Trong các mạng LAN, nghi thứcđược sử dụng phổ biến nhất là mạng Ethernet.
2.2.1.Điều khiển đatruy cập CSMA:
Trước khi truyền dữ liệu trên mạng, một trạm Ethernet phải lắng nghe hoạtđộng của kênh truyền Nếu phát hiện kênh truyền bị bận, nó sẽ chờ mà khôngtruyền Nếu kênh truyền trống thì nó sẽ truyền.
Trang 5Sau bit cuối cùng của một khung truyền trạm Ethernet phải đợi một khoảngthời gian nhất định để tạo một khoảng cách giữa các khung Khoảng cách nàychính là thời gian cho phép các trạm khác có thể chiếm kênh truyền.
Trong trường hợp xảy ra xung đột (khi có hai trạm cùng phát hiện ra kênh trốngvà truyền dữ liệu lên), trạm Ethernet sẽ phát hiện ra xung đột nhờ so sánh dữliệu trên đường truyền với dữ liệu đã phát Cả hai trạm sẽ cùng ngưng phát vàchờ trong một khoảng thời gian ngẫu nhiên trước khi phát lại Do thời gian chờ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 gianchờ 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:
(8 byte) DestinationAddress(6 byte)
SourceAddress(6 byte)
(2 byte) (46->1500Databyte)
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.5.FCS (Frame Check Sequence):
Cho phép trạm nhận xác định việc truyền có bị lỗi hay không.
Trang 62.3.Khảo sát Token Ring
Token Ring có 2 loại khung cơ bản
Start:Mở đầu khung
Access control :Phân biệt khung Token hoặc khung lệnh /dữ liệu Frame control :Phân biệt loại thông tin điều khiển
Destination address:Địa chỉ đến của khung Source address:Nơi xuất phát của khung Data:Có kích thước thay đổi mang thông tin FCS:Kiểm tra lỗi khung
End:Kết thúc
Frame status:Báo trạng thái khung nhận được
control
Access control
Frame control
Frame control
Destination address
Destination address
Source address
Source address
status
Frame status
Trang 7X^16+X^12+X^11+X^10+X^8+X^7+X^5+X^4+X^2+X+11Thuật toán tính CRC:
M:Bản tin cần phátR:Phần dư kết quả chia G:Đa thức sinh
Thực hiện phép tính :(M*2n) / G =Q + R /G
Kết quả phần dư R chính là CRC cần gán vào bản tin để phát
Việc lấy bản tin nhân 2n tức là thêm vào số số không bằng bậc của đa thức sinh Sau đó thực hiện chia module – 2 cho đa thức sinh Phần dư R chính là CRCcần tìm
Tại đầu phát bản tin M được thêm vào thành phần CRC trước khi phát
Tại đầu thu khi nhận được chuỗi dữ liệu cũng được xử lý như đầu phát Tuynhiên kết quả cho R là bằng không thì kết luận việc truyền không bị lỗi Nếuphần dư R khác không thì kết luận việc truyềøn bị lỗi
Có 2 cách thực hiện tính CRC: Phần cứng
Phần mềm
Trong đề tài sử dụng tính CRC8 bằng phần mềm với đa thức sinh CRC8 =X^8 + X^2 + X^1 + 1
Trang 8Đa thức sinh :100000111 Tính CRC-8
Tính CRC-8 có chuỗi dữ liệu sau với đa thức sinh 10000011111110000 11010000 10101010 10000000 0000000010000011 1
01110011 01 1000001 11 0110010 100 100000 111 010010 0111 10000 0111 00010 0000000 10 0000111
00 00001110 10101 1000 00111 0110 100100
100 000111010 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
000111111
FCS=00111111B8 bit dịch
Trang 9PHẦ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ệurất dễ bị nhiễu và suy hao Để tăng độ tin cậy trong việc truyền dữ liệu ,tínhiệ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
Tín hiệu điều chế FSK có tần số thay đổi tùy thuộc vào luồng dữ liệu nhị phânđược phát.
Điều chế FSK rất thông dụng với việc truyền dữ liệu tốc độ thấp từ 300 đến1200 baud.
Dạng tín hiệu FSK
Dạng tín hiệu giải điều chế FSK
Trang 10Trong chương này chúng ta sẽ đề cập đến những vấn đề cơ bản của VHDL vớicác phương pháp thiết kế truyền thống
VHDL là dạng mô tả ngôn ngữ gần gũi với người thiết kế VHDL bắt đầu từnhững mô tả đơn giản đến các hệ thống phức tạp mới hình thành Quá trình tiếpcận VHDL cũng được thực hiện qua trình tự như vậy Các mô tả đơn giản đượcchúng ta tiếp cận ,sau đó các thiết kế phức tạp hơn được xây dựng trên nềntảng đó.Quá trình chúng ta tiếp cận như vậy đối với VHDL giúp chúng ta hiểurõ hơn hệ thống thay vì chúng ta bắt tay ngay vào xây dựng một hệ thống lớn.
1.1.CÁC THUẬT NGỮ VHDL
Trong VHDL tồn tại những thuật ngữ liên quan mà trong các phần sau sẽ đượcđề 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ếtkế,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-levelentity.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ơngọ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ể baogồ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ế theodạng cấu trúc.
Trang 11Configuration –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 entitycó thể có và chỉ định cặp entity_architecture body nào sẽ tương ứng với cácphần khai báo trong architecture đó Các mô tả configuration có thể coi là danhsá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 GENERICphù 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à
đơn vị thực thi cơ bản trong VHDL.Tất cả hoạt động được thể hiện dựa trên cácmô tả VHDL mà trong đó các mô tả được phân thành một hay nhiều cácprocess.
1.2.CÁC KIỂU THIẾT KẾ TRUYỀN THỐNG
Trong thiết kế truyền thống, các công cụ CAE (Computer Aided Engineering)được người thiết kế sử dụng Khi sử dụng CAE,các người thiết kế phải tạo raschematic cho các thiết kế
Các schematic bao gồm các ký hiệu mô tả các thành phần cơ bản của thiết kếvà được kết nối bằng những đường tín hiệu Các ký hiệu mô tả đó phụ thuộcvào các thư viện đã dựng sẵn
Các thành phần cơ bản được kết nối bằng các đường tín hiệu Các kết nối nàyrất quan trọng việc xây dựng thiết kế ,các netlist tương ứng với mỗi thiết kếnhận được từ những thiết kế này Các netlist này giúp tạo ra các kiểu giả lậpnhằm kiểm tra lại thiết kế trước khi xây dựng ,đồng thời cung cấp các thông tincho các phần mềm xây dựng một thiết kế phần cứng thật sự
Trang 12Hình dưới mô tả một ví dụ thiết kế reset-set-flip-flop (RSFF) xây dựng theomột ký hiệu mô tả cái khái quát flip-flop trên với thiết kế :
Ngõ vào của thiết bị: SET và RESET. Ngõ ra của thiết bị : Q và QB.
Chức năng của thiết bị được thể hiện qua tên của ký hiệu
Các ký hiệu định rõ giao tiếp bên ngoài của thiết bị và chức năng của thiếtkế.Các kết nối bên trong ký hiệu thể hiện qua các schematic xây dựng trênnhững thành phần cơ bản (trong ví dụ này các cổng logic được sử dụng ).
1.2.1.Tương quan giữa các ký hiệu và các entity
Tất cả các thiết kế đều dựa trên các ENTITY.Các ENTITY được xem là các kýhiệu đại diện tồn tại trong các thiết kế dựa trên CAE.Dưới đây là phần mô tả ởmức trêncho 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ácthiế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õ
SET Q
Trang 131.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ácarchitecture đều xây dựng trên nền tảng là các ENTITY và chúng mô tả cáchành vi ứng xử trong ENTITY đó Để thực hiện mô tả ARCHITECTURE choENTITY rsff ta có thể thực hiện như sau:
ARCHITECTURE netlist OF rsff ISCOMPONENT nand
PORT(a,b:IN BIT;C:OUT BIT;
END COMPONENT;BEGIN
PORT MAP(set,qb,q);U2:nand
PORT MAP(reset,q,qb);END netlist;
Từ khóa ARCHITECTURE được sử dụng bắt đầu cho mô tả kiến trúc củaENTITY ARCHITECTURE có tên là netlist và có tên ENTITY tương ứng làrsff.Trong ENTITY có thể có nhiều ARCHITECTURE trong nó ,cácARCHITECTURE có thể là dạng mô tả hành vi hoặc đối với ví dụ trên nó cóthể mô tả dưới dạng cấu trúc Giữa 2 từ khóa ARCHITECTURE và BEGIN làcác khai báo cho các đường tín hiệu hay các thành phần được sử dụng trong cấutrúc đó
Trong ví dụ trên thành phần cổng logic NAND được khai báo choARCHITECTURE.Trình biên dịch cần biết các thông tin về giao tiếp của cácthành phần được sử dụng trong ARCHITECTURE,các giao tiếp đó được mô tảsau từ khóa PORT.Mọi mô tả được đặt giữa 2 từ khóa BEGIN và END ,các môtả đó xảy ra đồng thời với nhau
Trang 141.2.3.Thành phần component
Thành phần NAND được sử dụng 2 lần trong ví dụ trên tương ứng là U1 vàU2.Thành phần NAND được sử dụng với cái tên là U1 với ngõ đầu tiên nối vớitín hiệu set, ngõ thứ 2 nối với tín hiệu qb và ngõ thứ 3 nối với tín hiệu q.Nếuchúng ta quan sát mô tả của COMPONENT chúng ta sẽ thấy ngõ đầu tiên làa,ngõ thứ 2 là b,đó là 2 ngõ vào ,ngõ thứ 3 là ngõ ra với tên là c.Do đó các ngõsẽ có các tín hiệu tương ứng nối với nó.Cụ thể là :Ngõ a của thành phần NANDtrong U1 nối với tín hiệu set,ngõ b nối với tín hiệu qb và ngõ c sẽ được nối vớitín hiệu q.Đối với U2,chúng ta sẽ thấy được các kết nối sau từ khóa PORTMAP.Chúng ta còn một cách mô tả qua đó chúng ta sẽ thấy mọi kết nối đượcrõ ràng hơn
U1:PORT MAP(a=>set,B=>qb,
U2:PORT MAP(a=>reset,b=>q,
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ànhvi.Đây là dạng thiết kế mô tả một hệ thống thông qua việc thể hiện rõ cáchthứ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ộttập hợp lệnh được thực thi theo thứ tự.Khi ta chọn kiểu thiết kế dạng hànhvi,cấu trúc của hệ thống hoàn toàn không thể hiện
ACRCHITECTURE behaviour OF rff ISBEGIN
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 đượcnêu rõ trong những mô tả VHDL.Ngoài 2 cách thiết kế trên ,chúng ta còn cáchthiế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 quasử dụng cú pháp PROCESS.Các mô tả đó có thể trình bày như sau :
ARCHITECTURE sequential OF rsff ISBEGIN
Trang 15IF set =’1’ AND reset =’0’ THENq<=’0’;
END PROCESS;END sequential;
Các mô tả được thực hiện bắt đầu bằng một từ khóa PROCESS và kết thúcbằng từ khóa END PROCESS.
1.2.6.Mô tả PROCESS
Một mô tả PROCESS gồm 3 phần.Phần đầu tiên gọi là danh sách độ nhạy
(SENSITIVITY LIST);phần thứ hai được coi là phần khai báo
(DECLARATION) đặt trước từ khóa BEGIN và phần sau từ khóa BEGIN làphần mô tả Các tín hiệu đặt trong dấu ngoặc đơn sau từ khóa PROCESS làdanh sách độ nhạy của PROCESS khi có sự thay đổi giá trị xảy ra trên mộttrong các tín hiệu trong danh sách này,các lệnh trong PROCESS sẽ được thựcthi
1.2.7.Vùng khai báo của PROCESS
Phần khai báo biến của PROCESS nằm trong khoảng giữa cuối danh sách độnhạy và từ khóa BEGIN.Trong ví dụ trên,phần khai báo này được đểtrống.Trong phần này các biến hay các hằng số được khai báo ,các biến khaibáo chỉ được hiểu trong phạm vi PROCESS đó Khi gán giá trị cho biến ta dùngký hiệu “:= “ Chú ý trong một PROCESS ta không khai báo SIGNAL
1.2.8.Vùng thực thi tuần tự trong PROCESS
Các mô tả trong phần này sẽ được thực thi một cách tuần tự trong PROCESSkhi có bất kỳ tín hiệu nào thay đổi trong danh sách độ nhạy sau từ khóaPROCESS.Trong ví dụ này các mệnh đề IF sẽ được kiểm tra đầu tiên và thựcthi khi các mệnh đề IF này đúng
Trang 161.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ềuARCHITECTURE 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 ISFOR 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âncấ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 version1trong 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 17Để 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ùngmạ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 chotoàn chip Các nối kết giữa các LE gần nhau thì ngắn hơn và nhanh hơn.
Field-Programmable Gate Array (FPGA) đã xuất hiện như giải pháp cơ bản chovấn đề tranh thủ thời gian để đưa ra thị trường và rủi ro tài chính phải gánhchịu trong quá trình nghiên cứu sản phẩm của công nghệ điện tử Nó cho phépchế tạo ngay và giá sản phẩm rất thấp FPGA là 1 thiết bị cấu trúc logic có thểđược người sử dụng lập trình trực tiếp mà không phải sử dụng bất kỳ 1 công cụchế tạo mạch tích hợp nào.
Các thiết bị lập trình được đóng vai trò quan trọng lâu dài trong thiết kế cácphần cứng số Chúng là các chip đa dụng có thể được cấu hình theo nhiều cáchcho nhiều ứng dụng Loại đầu tiên của thiết bị có thể lập trình được sử dụngrộng rãi là Programmable read-Only Memory (PROM) PROM là thiết bị lậptrình chỉ được 1 lần gồm 1 dãy các ô nhớ chỉ đọc PROM có thể thực hiện bấtkỳ hàm logic theo bảng sự thật nào bằng cách sử dụng các đường địa chỉ nhưcác ngõ nhập và ngõ xuất được xác định bởi nội dung các bit nhớ.
Có 2 loại PROM cơ bản, 1 loại chỉ có thể được lập trình bởi nhà sản xuất và 1loại có thể được lập trình bởi người dùng Loại thứ nhất được gọi là mask-programmable và loại thứ 2 được gọi là field-programmable Khi sản xuất cácchip logic, hiệu suất tốc độ cao có thể đạt được với các chip mask-programmable vì các kết nối bên trong thiết bị được thực hiện bằng phần cứngkhi sản xuất Ngược lại, các kết nối của field-programmable luôn cần đến 1 sốloại chuyển mạch lập trình được (cầu chì chẳng hạn) và vì vậy chậm hơn kếtnối cứng Tuy nhiên, thiết bị field-programmable chứa đựng các ưu điểm có giátrị hơn sự hạn chế về tốc độ.
Trang 18 Các chip field-programmable rẻ hơn các chip mask-programmable khi sản xuất với số lượng nhỏ.
Các chip field-programmable có thể được lập trình tức thì trong vàiphút,trong khi các chip mask–programmable khi sản xuất phải mất hàngtuần hay hàng tháng.
Hai biến thể field-programmable của PROM là Erasable Programmable Only Memory (EPROM) và Electrically Erasable Programmable Read- OnlyMemory (EEPROM) cung cấp 1 ưu điểm: cả hai có thể được xóa và lập trìnhlại nhiều lần.
Read-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ácmạch logic là Progammable Logic Device (PLD) Một PLD thông thường gồmmộ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áccổ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 PALkhác linh hoạt hơn là Programmable Logic Array (PLA) PLA cũng có cấu trúcgiống PAL nhưng các kết nối là lập trình được PLA có cả 2 loại maskprogrammable 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êncấ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ọilà Mask–Programmable Gate Array (MPGA) Các MPGA phổ biến nhất gồmcác hàng transistor có thể được kết nối để thực hiện các mạch logic Các kếtnố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épthự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ộngcùng với số lượng logic.
Field Programmable Gate Array (FPGA) đã kết hợp khả năng lập trình củaPLD 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ìnhloại này có mật độ logic cao hơn.
Trang 19Cấu trúc FPGA
Mô hình FPGA
Giống như MPGA, 1 FPGA gồm 1 dãy các phần tử rời rạc có thể được kết nốivới nhau theo 1 cách chung Giống như PLA, các kết nối giữa các phần tử là cóthể lập trình được FPGA được giới thiệu đầu tiên bởi công ty Xilinx năm1985.Kể từ đó có nhiều loại FPGA đã được nhiều công ty phát triển Actel,Altera, Plessey, Plus Logic, Advanced Micro Devices (AMD), Quick Logic,Concurrent Logic, Crosspoint Solutions…
Hình trên mô tả mô hình lý thuyết của 1 FPGA Nó gồm 1 dãy 2 chiều cáclogic block có thể được kết nối bằng các nguồn kết nối chung Các nguồn kếtnối gồm các đoạn dây nối (segment) có thể có chiều dài khác nhau Bên trongcác kết nối là các chuyển mạch lập trình được dùng để nối các logic block vớicác đoạn dây hoặc các đoạn dây với nhau Mạch logic được cài đặt trong FPGAbằng cách ánh xạ logic vào các logic block riêng rẻ và sau đó nối các logicblock cần thiết qua các chuyển mạch.
Trang 20Các logic block
Cấu trúc và nội dung của logic block được gọi là kiến trúc của nó Kiến trúccủa logic block có thể được thiết kế theo nhiều cách khác nhau Một số logicblock có thể chỉ đơn giản là các cổng AND 2 ngõ nhập Các logic block khác cócấu trúc phức tạp hơn như các multiplexer hay các bảng tìm kiếm (look up-table) Trong một số loại FPGA, các logic block có thể có cấu trúc hoàn toàngiống như PAL Hầu hết các logic block chứa 1 số loại flip-flop, để hỗ trợ choviệc thực hiện các mạch tuần tự.
Các nguồn kết nối
Cấu trúc và nội dung của các nguồn kết nối trong FPGA được gọi là kiến trúcrouting (routing architecture) Kiến trúc routing gồm các đoạn dây nối và cácchuyển mạch lập trình được Các chuyển mạch lập trình được có thể có nhiềucấu tạo khác nhau như pass transistor được điều khiển bởi cell SRAM, các cầuchì nghịch (anti-fuse), EPROM transistor và EEPROM transistor Giống nhưlogic block có thể nhiều cách khác nhau để thiết kế các kiến trúc routing Mộtsố FPGA cung cấp nhiều kết nối đơn giản giữa các logic block, một số kháccung 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ậndạ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ạchkhô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ầntừ 10 đến 20 PAL.
Trang 21Thay 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ệnthấ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 sovớ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ẫuban đầu có thể được thực hiện rất nhanh và những thay đổi sau đó được thựchiệ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áilậ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ớicác chân board nối với các chip lân cận giống như thông thường Ý tưởng là 1chương trình phần mềm có thể được “biên dịch “(sử dụng kỹ thuật tổng hợpmức cao,mức logic và mức sơ đồ hoặc bằng tay) vào ngay phần cứng Phầncứng này sẽ được thực hiện bằng cách lập trình bo mạch FPGA Phương phápnày có 2 ưu điểm chính: một là không cần quá trình lấy lệnh như các bộ vi xửlý truyền thống vì phần cứng đã gộp cả các lệnh Kết quả là tốc độ có thể tănglên hàng trăm lần Hai là môi trường tính toán có thể được thực hiện song songmức cao, làm tăng tốc thêm nữa.
Tái cấu hình phần cứng trực tuyến
FPGA cho phép có thể thay đổi theo mong muốn cấu trúc cuả một máy đanghoạt động Một ví dụ là các thiết bị máy tính từ xa có thể được thay đổi trựctuyến để khắc phục sự cố hay có lỗi thiết kế Kiểu FPGA thích hợp nhất chocác ứng dụng này là những FPGA có các chuyển mạch lập trình được.
Tóm lại FPGA có thể sử dụng có hiệu quả trong nhiều ứng dụng thực tế Nếuso sánh với MPGA thì nó có 2 lợi điểm quan trọng: FPGA có giá thành tạo mẫuthấp hơn, thời gian chế tạo ngắn hơn
Trang 22PHẦN 6
TỔNG QUAN PROJECT MANAGER
Project Manager là một ứng dụng cho phép tích hợp xử lý các môi trường thiếtkế khác nhau như :
Trình soạn thảo hình vẽ. Trình soạn thảo ngôn ngữ. Trình soạn thảo trạng thái
Project Manager thực hiện các chức năng sau :
Tự động tải các trình soạn thảo thiết kế khi Project được mở. Kiểm tra lỗi các trình soạn thảo thiết kế khi Project được mở Hiển thị các quá trình biên dịch
Hiển thị trạng thái và tất cả các lỗi trong cửa sổ trạng thái Hiển thị thông tin các trình soạn thảo
Trang 23Project 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ộtlú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 24Trì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, ABELvà Verilog.
Trang 25Trình soạn thảo trạng thái
Trình soạn thảo trạng thái cho phép thiết kế các trạng thái xảy ra dưới dạngmáy trạng thái
Trang 26 Cho phép lập trình nối tiếp 2K EEPROM
256 byte RAM 3 Timer 16 bit Hỗ trợ Watchdog Con trỏ luân phiên
Sơ đồ chân :
89S8252 hỗ trợ các chân lập trình nối tiếp
P1.7(SCK ):Chân clock khi lập trình nối tiếp
U 1
A T 8 9 S 8 2 5 2E A / V P
3 1X 11 9
X 21 8
R E S E T9
I N T 01 2
I N T 11 3
T 01 4
T 11 5
P 1 01
P 1 12
P 1 23
P 1 34
S S5
M O S I6
M I S O7
S C K8
P 0 0 3 9P 0 1 3 8P 0 2 3 7P 0 3 3 6P 0 4 3 5P 0 5 3 4P 0 6 3 3P 0 7 3 2P 2 0 2 1P 2 1 2 2P 2 2 2 3P 2 3 2 4P 2 4 2 5P 2 5 2 6P 2 6 2 7P 2 7 2 8
P S E N 2 9A L E / P 3 0T X D 1 1
Trang 27 P1.6(MISO):Ngõ vào dữ liệu lập trình P1.5(MOSI):Ngõ ra dữ liệu lập trình P1.4(SS):Ngõ vào chọn IC
Sơ đồ chân :
VDD: Nguồn cung cấp 5V.RXA:Ngõ vào analog.CAP:Kết nối tụ 0.1uF.
RXF:Ngõ vào analog có qua mạch lọc
FIL:Điều khiển ngõ vào.FIL =1 chọn ngõ vào lọc ,FIL =0 chọn ngõ vào khôngqua bộ lọc.
TEST:Đặt IC vào chế độ kiểm tra TEST = 0, IC hoạt động bình thường
TX:Điều khiển ngõ ra phát.TX =1 cấm ngõ ra phát,TX = 0 cho phép ngõ raphát.
U 3
7 3 M 2 2 3V D D1
R X A2
C A P3
R X F4
F I L5
T E S T6
T X7
V S S8
Trang 28 Hỗ trợ 108 chân xuất nhập
Lập trình giảm nguồn tiêu thụ trong từng macrocell Hỗ trợ nhiều loại dạng chân PLCC,PQFP,TQFP,PQFPCấu trúc :
Jtag Controller In-System Programming ControllerJtag Port
Function Block 1Macrcells
1to 8Function Block 2
Macrcells 1to 8
Function Block 6Macrcells
1to 8Switch
BlockI/O
Trang 29PHƯƠNG ÁN THỰC HIỆN A CÔNG CỤ THỰC HIỆN
Phần mềm Visual Basic 6 Phần mềm Orcad 9.0 Phần mềm Protel 2.8 Tập lệnh vi xử lý
Phần mềm Xilinx Foundation 3.1i
B THIẾT KẾ TỪNG PHẦN 1.Chương trình quản lý
1.1Giao diện người dùng
Phần mềm được viết mô hình hoạt động của mạng cho phép truy xuất đến cácKit trong mạng Người sử dụng chỉ quan tâm đến lớp ứng dụng cần truy xuấtđến Kit nào trong mạng và dữ liệu là gì Ở đây dữ liệu được biên dịch giữaphần mềm quản lý và các Kit một cách trong suốt
Trang 301.2.Giao diện truy cập mạng
Giao diện truy cập thông tin mạng thông qua các ngõ nhập dữ liệu ,địa chỉ ,tốcđộ và cổng truy cập
1.3.Lưu đồ giải thuật 1.3.1.Thủ tục gửi dữ liệu
Thủ tục gửi dữ liệu được gọi khi người sử dụng nhấn lệnh “Send”.Khi đó thủtục gửi khung Token đến địa chỉ cần gửi dữ liệu ,tiếp đến khung dữ liệu đượcgửi đi Trong quá trình gửi thủ tục luôn kiểm tra kết quả gửi khung dữ liệu bằngkhung trả lời ACK.Trong trường hợp chưa nhận ACK thì bộ định thời timeoutđược kích hoạt Sau mỗi lần timeout thì khung dữ liệu được phát lại ,số lần phátlại bằng 3 thì cảnh báo lỗi đường truyền.
Gửi dữ liệu
Trang 31Cờ trả lời ACK
Gửi khung Token đến địa chỉ của Kit
con trỏVà các thanh ghi
Gửi khung Token đến địa chỉ của Kit
con trỏVà các thanh ghi
Không Có
Time out? Không
Xóa Time outTăng biến số lần phát
Gửi khung dữ liệu đến địa chỉ của Kit
con trỏVà các thanh ghi
Gửi khung dữ liệu đến địa chỉ của Kit
con trỏVà các thanh ghi
Cờ trả lời ACK
Không
Time out? Không
Số lần phát bằng 3 ?Có
Xóa Time outTăng biến số lần phát
Trang 321.3.2.Thủ tục nhận dữ liệu
Giảm độ dài khung 1 đơn vị
Giảm độ dài khung 1 đơn vị
Độ dài khung =0?
Bộ đệm có dữ liệu ?
Phục hồi các con trỏ và các thanh ghi
Phục hồi các con trỏ và các thanh ghi
Cất dữ liệu
Độ dài khung =0?Có
Kiểm tra đầu khung ?
Có
EKhông
Thủ tục nhận dữ liệu
Trang 33Tính FCS
Tính FCS K
Tính FCSTính FCS K
Tăng con trỏ dữ liệu
Trang 34Thủ tục nhận dữ liệu xử lý các khung lệnh nhận được từ Kit convert.dsn gửilên bằng 2 con trỏ
Con trỏ giữ vị trí ban đầu của bộ đệm Con trỏ giữ vị trí dữ liệu có trong bộ đệm
Khi 2 con trỏ khác nhau chứng tỏ trong bộ đệm có dữ liệu.Khi bộ đệm nhận đủmột khung lệnh thì thủ tục tính FCS.Kết quả tính FCS xác định khung nhận tốthay bị lỗi Khi khung nhận tốt thì thủ tục tiếp tục xử lý xem khung dữ liệu nhậnđược là loại khung gì thông qua byte Command trong khung mà có những xử lýtương ứng với khung vừa nhận
Xử lý khung lệnh
Không
Trang 351.3.2.1.Tính FCS
Không
Dịch phải FCSDịch phải DataDịch phải Command
Dịch phải AddressDịch phải HeaderGiảm số lần quay 1 đơn vị
Dịch phải FCSDịch phải DataDịch phải Command
Dịch phải AddressDịch phải HeaderGiảm số lần quay 1 đơn vị
Số lần quay bằng 0 ? Có
Gán số lần quay dịch phải là 32
Cờ C bằng 1?Cờ C bằng 1?
Xor byte Header và 07hCập nhật byte Header
Xor byte Header và 07hCập nhật byte Header
Thoát Không
Không
Có
Xor byte Header và 07h
Gán Header vào byte FCS
Gán Header vào byte FCS
Gán Header vào byte FCSCó
Tính FCS
Trang 36Giải thuật tính FCS có đa thức sinh: 100000111
Hướng phát:
Tính CRC-8 cho 4 byte 1/Header
Kết quả tính FCS là byte thứ 5 trong khung dữ liệu phát.
Hướng thu:
Tính CRC-8 cho 5 byte nhận được 1/Header
Phần dư kết quả tính FCS bằng 0 thì kết quả nhận không lỗi Phần dư khác 0 thìkhung dữ liệu nhận bị lỗi.
Trong giải thuật tính FCS có sử dụng cờ C.Cờ C là kết quả dịch phải của 5 bytekhung dữ liệu.Kết quả tính được lưu vào byte FCS
Lớp liên kết
Command Lớp liên
Khung dữ liệu phát
Lớp liên kết
Command Lớp liên
Khung dữ liệu thu
Trang 371.4.Chương trình nguồn Chương trình:
Private Sub CmdImage1_Click()FrmSystemConfig.Show
FrmCom.ShowEnd Sub
Private Sub CmdOpenPort_Click()Call PortOpen
End Sub
Private Sub Form_Load()
Demo = " MÔ HÌNH MẠNG "Demolbl = Demo & " "TimeReadBuffer.Enabled = True
Timereadcode.Enabled = TrueEnd Sub
Private Sub timer_ack_Timer()
MsgBox "Network erro", vbExclamationFrmMain.timer_ack.Enabled = FalseRx_frame(0) = 0
Rx_frame(1) = 0Rx_frame(2) = 0Rx_frame(3) = 0Rx_frame(4) = 0End Sub
Private Sub Timer1_Timer()Dim Str As String
Str = Left(Demolbl.Caption, 1)
Demolbl.Caption = Mid(Demolbl.Caption, 2, Len(Demolbl.Caption) - 1) & Str
End Sub
Private Sub Timer3_Timer()
'============================================='Day la doan kiem tra Ack Neu nhan duoc dung Ack'thi off kiem tra timoout
'Neu nhu nhan duoc frame tot ma khong dung'Ack cua kenh vua gui thi cagnh bao dong thoi'cung off luon timeout
'Kiem tra ACK nhan duoc
'Co Complte_F bao nhan frame totIf Complete_F Then
'=============================================Complete_F = False
Trang 38If Crc_F Then
MsgBox "Crc8 erro", vbExclamationFrmMain.timer_ack.Enabled = FalseElse
If (Rx_frame(1) <> Kit) Then
MsgBox "Address erro", vbExclamationFrmMain.timer_ack.Enabled = FalseElse
'Sau 6 s ma chua nhan duoc Ack thi canh bao duong truyen
If (Rx_frame(2) <> Ack_F) ThenMsgBox "Ack erro", vbExclamationFrmMain.timer_ack.Enabled = FalseElse
FrmMain.timer_ack.Enabled = FalseAck_good = True
Msgbox "nhan duoc ack"Rx_header = Rx_frame(0)Rx_address = Rx_frame(1)Rx_command = Rx_frame(2)Rx_data = Rx_frame(3)Rx_fcs = Rx_frame(4)End If
End IfEnd If
Rx_frame(0) = 0Rx_frame(1) = 0Rx_frame(2) = 0Rx_frame(3) = 0Rx_frame(4) = 0End If
End Sub
Private Sub Timer4_Timer()If Ack_good Then
Ack_good = FalseIf Data_send_F ThenData_send_F = FalseElse
Header = 160Address = KitCommand = Data_F
Data = Val(FrmSystemConfig.txtdata1.Text) Call senddata
Trang 39Data_send_F = TrueMsgBox "gui data1"
FrmMain.timer_ack.Enabled = TrueEnd If
End IfEnd Sub
Private Sub TimeReadBuffer_Timer()TimeReadBuffer.Enabled = FalseCall ReadBuffer
End Sub
Private Sub timereadcode_Timer()timereadcode.Enabled = FalseCall Readcode
MsgBox ("Invalid Value,Try again Datatx value:")Exit Sub
Trang 40Header = 160Address = KitCommand = Token_FCall senddata
'============================================='Cho timer tinh timeout
'=============================================MsgBox "Phat xong dang cho ack"
FrmMain.timer_ack.Enabled = TrueFrmMain.Timer3.Enabled = TrueEnd Sub
Private Sub Combo1_Change()End Sub
Private Sub Combo1_Click()End Sub
Private Sub CmpBaud_Click()Select Case CmpBaud.ListIndexCase 0
Baud = "1200"Case 1
Baud = "2400"Case 2
Baud = "4800"Case 3
Baud = "9600"Case 4
Baud = "19200"End SelectEnd Sub
Private Sub CmpKit_Click()Select Case CmpKit.ListIndexCase 0
Kit = 1Case 1Kit = 2Case 2Kit = 3Case 3Kit = 4Case 4Kit = 5End SelectEnd Sub