文档库 最新最全的文档下载
当前位置:文档库 › 翻译原文

翻译原文

翻译原文
翻译原文

The inline JavaScript is greatly simplified. All we need to do is create the Event-Router, pass in the listener functions, and provide implementations for the listeners. We leave it as an exercise for the reader to include checkboxes to add and remove each listener dynamically.

This rounds out our discussion of the Controller layer in an Ajax application and the role that design patterns—Observer in particular—can play in keeping it clean and easy to work with. In the following section, we’ll look at the final part of the MVC pattern, the Model.

4.4 Models in an Ajax application

The Model is responsible for representing the business domain of our application, that is, the real-world subject that the application is all about, whether that is a garment stor e, a musical instrument, or a set of points in space. As we’ve noted already, the Document Object Model is not the model at the scale at which we’re looking at the application now. Rather, the model is a collection of code that we have written in JavaScript. Like most design patterns, MVC is heavily based on object-oriented thinking.

JavaScript is not designed as an OO language, although it can be persuaded into something resembling object orientation without too much struggle. It does support the definition of something very similar to object classes through its prototype mechanism, and some developers have gone as far as implementing inheritance systems for JavaScript. We discuss these issues further in appendix B. When implementing MVC in JavaScript so far, we’ve adapted it to the JavaScript style of

coding, for example, passing Function objects directly as event listeners. When it comes to defining the model, however, using JavaScript objects, and as much of an OO approach as we’re comfortable with for the language, makes good sense. In the following section, we’ll show how that is done.

4.4.1 Using JavaScript to model the business domain

When discussing the View, we are very much tied to the DOM. When we talk about the Controller, we are constrained by the browser event models. When writing the Model, however, we are dealing almost purely with JavaScript and have very little to do with browser-specific functionality. Those who have struggled with browser incompatibilities and bugs will recognize this as a comfortable situation in which to be.

Let’s look at a simple example. In chapter 3 we discussed our garment store application, from the point of view of generating a data feed from the server. The data described a list of garment types, in terms of a unique ID, a name, and a description, along with price, color, and size information. Let’s return to that example now and consider what happens when the data arrives at the client. Over the course of its lifetime, the application will receive many such streams of data and have a need to store data in memory. Think of this as a cache if you like—data stored on the client can be redisplayed very quickly, without needing to go back to the server at the time at which the user requests the data. This benefits the user’s workflow, as discussed in chapter 1.

We can define a simple JavaScript object that corresponds to the garment object

defined on the server. Listing 4.10 shows a typical example.

Listing 4.10 Garment.js

var garments=new Array();

function Garment(id,title,description,price){

this.id=id;

garments[id]=this;

this.title=title;

this.description=description;

this.price=price;

this.colors=new Object();

this.sizes=new Object();

}

Garment.prototype.addColor(color){

this.colors.append(color,true);

}

Garment.prototype.addSize(size){

this.sizes.append(size,true);

}

We define a global array first of all, to hold all our garments. (Yes, global variables are evil. In production, we’d use a namespacing object, but we’ve omitted that for clarity here.) This is an associative array, keyed by the garment’s unique ID, ensuring that we have only one reference to each garment type at a time. In the

constructor function, we set all the simple properties, that is, those that aren’t arrays. We define the arrays as empty and provide simple adder methods, which uses our enhanced array code (see appendix B) to prevent duplicates.

We don’t provide getter or setter methods by default and don’t support the full access control—private, protected, and public variables and methods—that a full OO language does. There are ways of providing this feature, which are discussed in appendix B, but my own preference is to keep the Model simple.

When parsing the XML stream, it would be nice to initially build an empty Garment object and then populate it field by field. The astute reader may be won dering why we haven’t provided a simpler constructor. In fact, we have. JavaScript function arguments are mutable, and any missing values from a call to a function will simply initialize that value to null. So the call

var garment=new Garment(123);

will be treated as identical to

var garment=new Garment(123,null,null,null);

We need to pass in the ID, because we use that in the constructor to place the new object in the global list of garments.

4.4.2 Interacting with the server

We could parse the XML feed of the type shown in listing 4.10 in order to gener ate Garment objects in the client application. We’ve already seen this in action in chapter 2, and we’ll see a number of variations in chapter 5, so we won’t go into all the details here. The XML document contains a mixture of attributes and tag

content. We read attribute data using the attributes property and getNamedItem() function and read the body text of tags using the firstChild and data properties, for example:

garment.description=descrTag.firstChild.data;

to parse an XML fragment such as

Large tweedy hat looking

like an unappealing strawberry

Note that garments are automatically added to our array of all garments as they are created, simply by invoking the constructor. Removing a garment from the array is also relatively straightforward:

function unregisterGarment(id){

garments[id]=null;

}

This removes the garment type from t he global registry, but won’t cascade to destroy any instances of Garment that we have already created. We can add a simple validation test to the Garment object, however:

Garment.prototype.isValid=function(){

return garments[this.id]!=null;

}

We’v e now defined a clear path for propagating data all the way from the database to the client, with nice, easy-to-handle objects at each step. Let’s recap the

steps. First, we generate a server-side object model from the database. In section 3.4.2, we saw how to do this using an Object-Relational Mapping (ORM) tool, which gave us out-of-the-box two-way interactions between object model and database. We can read data into objects, modify it, and save the data.

Second, we used a template system to generate an XML stream from our object model, and third, we parsed this stream in order to create an object model on the JavaScript tier. We must do this parsing by hand for now. We may see ORM-like mapping libraries appearing in the near future.

In an administrative application, of course, we might want to edit our data too, that is, modify the JavaScript model, and then communicate these changes back to the server model. This forces us to confront the issue that we now have two copies of our domain model and that they may get out of sync with each other.

In a classic web application, all the intelligence is located on the server, so our model is located there, in whatever language we’re using. In an Ajax application, we want to distribute the intelligence between the client and the server, so that the client code can make some decisions for itself before calling back to the server. If the client makes only very simple decisions, we can code these in an ad hoc way, but then we won’t get much of the benefit of an in telligent client, and the system will tend to still be unresponsive in places. If we empower the client to make more important decisions for itself, then it needs to know something about our business domain, at which point it really needs to have a model of the domain.

We can’t do away with the domain model on the server, because some resources

are available only on the server, such as database connections for persistence, access to legacy systems, and so on. The client-side domain model has to work with the one on the server. So, what does that entail? In chapter 5 we will develop a fuller understanding of the client/server interactions and how to work cleanly with a domain model split across both tiers.

So far we’ve looked at Model, View, and Controlle r in isolation. The final topic for this chapter brings the Model and View together again.

4.5 Generating the View from the Model

By introducing MVC into the browser, we’ve giv en ourselves three distinct subsystems to worry about. Separating concerns may result in cleaner code, but it can also result in a lot of code, and a common critique of design patterns is that they can turn even the simplest task into quite an involved process (as Enterprise JavaBeans [EJB] developers know only too well!).

Many-layered application designs often end up repeating information across several layers. We know the importance of DRY code, and a common way of tackling this repetition is to define the necessary information once, and generate the various layers automatically fr om that definition. In this section, we’ll do just that, and present a technique that simplifies the MVC implementation and brings together all three tiers in a simple way. Specifically, we’ll target the View layer.

So far, we’ve looked at the View as a hand-coded representation of the underlying Model. This gives us considerable flexibility in determining what the user sees, but at times, we won’t need this flexibility, and hand-coding the UI can

become tedious and repetitive. An alternative approach is to automatically generate the user interface, or at least portions of it, from the underlying Model. There are precedents for doing this, such as the Smalltalk language environments and the Java/.NET Naked Objects framework (see the Resources section), and JavaScript is well suited to this sort of task. Let’s have a look at what JavaScript reflection can do for us in this regard, and develop a generic “Object Browser” component, that can be used as a View for any JavaScript object that we throw at it.

4.5.1 Reflecting on a JavaScript object

Most of the time when we write code to manipulate an object, we already have a fairly good idea of what the object is and what it can do. Sometimes, however, we need to code blindly, as it were, and examine the object without any prior knowledge. Generating a user interface for our domain model objects is just such a case. Ideally, we would like to develop a reusable solution that can be equally applied to any domain—finance, e-commerce, scientific visualization, and so on. This section presents just such a JavaScript library, the ObjectViewer, that can be used in your own applications. To give you a taste of the ObjectViewer in action, figure 4.7 shows the ObjectViewer displaying several layers of a complex object graph.

The object being viewed, representing the planet Mercury, is quite sophisticated, with properties including an image URL, an array of facts, as well as simple strings and numbers. Our ObjectViewer can handle all of these intelligently without knowing anything specific about the type of object in advance.

The process of examining an object and querying its properties and capabilities is known as reflection. Readers with a familiarity to Java or .NET should already be familiar with this term. We discus s JavaScript’s reflection capabilities in more detail in appendix B. To summarize briefly here, a JavaScript object can be iterated over as if it were an associative array. To print out all the properties of an object, we can simply write

var description="";

for (var i in MyObj){

var property=MyObj[i];

description+=i+" = "+property+"\n";

}

alert(description);

Presenting data as an alert is fairly primitive and doesn’t integrate with the rest of a UI very well. Listing 4.11 presents the core code for the ObjectViewer object.objviewer.

ObjectViewer=function(obj,div,isInline,addNew){

styling.removeAllChildren(div);

this.object=obj;

this.mainDiv=div;

this.mainDiv.viewer=this;

Listing 4.11 ObjectViewer object

this.isInline=isInline;

this.addNew=addNew;

var table=document.createElement("table");

this.tbod=document.createElement("tbody");

table.appendChild(this.tbod);

this.fields=new Array();

this.children=new Array();

for (var i in this.object){

this.fields[i]=new objviewer.PropertyViewer(

this, i

);

}

objviewer.PropertyViewer=function(objectViewer,name){ this.objectViewer=objectViewer;

https://www.wendangku.net/doc/325208184.html,=name;

this.value=objectViewer.object[https://www.wendangku.net/doc/325208184.html,];

this.rowTr=document.createElement("tr");

this.rowTr.className='objViewRow';

this.valTd=document.createElement("td");

this.valTd.className='objViewValue';

this.valTd.viewer=this;

this.rowTr.appendChild(this.valTd);

var valDiv=this.renderSimple();

this.valTd.appendChild(valDiv);

viewer.tbod.appendChild(this.rowTr);

}

objviewer.PropertyViewer.prototype.renderSimple=function(){

var valDiv=document.createElement("div");

var valTxt=document.createTextNode(this.value);

valDiv.appendChild(valTxt);

if (this.spec.editable){

valDiv.className+=" editable";

valDiv.viewer=this;

valDiv.onclick=objviewer.PropertyViewer.editSimpleProperty;

}

return valDiv;

}

Our library contains two objects: an ObjectViewer, which iterates over the members of an object and assembles an HTML table in which to display the data, and a PropertyViewer, which renders an individual property name and value as a table row.

This gets the basic job done, but it suffers from several problems. First, it will iterate over every property. If we have added helper functions to the Object prototype, we will see them. If we do it to a DOM node, we see all the built-in properties and appreciate how heavyweight a DOM element really is. In general, we want to be selective about which properties of our object we show to the user. We can specify which properties we want to display for a given object by attaching a special property, an Array, to the object before passing it to the object renderer.

Listing 4.12 illustrates this.

objviewer.ObjectViewer=function(obj,div,isInline,addNew){

styling.removeAllChildren(div);

this.object=obj;

this.spec=objviewer.getSpec(obj);

this.mainDiv=div;

this.mainDiv.viewer=this;

this.isInline=isInline;

this.addNew=addNew;

var table=document.createElement("table");

this.tbod=document.createElement("tbody");

table.appendChild(this.tbod);

this.fields=new Array();

this.children=new Array();

for (var i=0;i

this.fields[i]=new objviewer.PropertyViewer(

this,this.spec[i]

);

}

objviewer.getSpec=function (obj){

return (obj.objViewSpec) ?

obj.objViewSpec :

objviewer.autoSpec(obj);

}

objviewer.autoSpec=function(obj){

var members=new Array();

for (var propName in obj){

var spec={name:propName};

members.append(spec);

}

return members;

}

objviewer.PropertyViewer=function(objectViewer,memberSpec){ this.objectViewer=objectViewer;

this.spec=memberSpec;

https://www.wendangku.net/doc/325208184.html,=https://www.wendangku.net/doc/325208184.html,;

...

}

We define a property objViewSpec, which the ObjectViewer constructor looks for in each object. If it can’t find such a property, it then resorts to creating one by Listing 4.12 Using the objViewSpec property iterating over the object in the autoSpec() function. The objViewSpec property is a numerical array, with each element being a lookup t able of properties. For now, we’re only concerned with generating the name property. The PropertyViewer is passed the spec for this property in its constructor and can take hints from the spec as to how it should render itself.

If we provide a specification property to an object that we want to inspect in the ObjectViewer, then we can limit the properties being displayed to those that we think are relevant.

A second problem with our ObjectViewer is that it doesn’t handle complex properties very well. When objects, arrays, and functions are appended to a string, the toString() method is called. In the case of an object, this generally returns something nondescriptive such as [Object object]. In the case of a Function object, the entire source code for the function is returned. We need to discriminate between the different types of properties, which we can do using the instanceof operator. With that in place, let’s see how we can improve on our viewer.

4.5.2 Dealing with arrays and objects

One way of handling arrays and objects is to allow the user to drill down into them using separate ObjectViewer objects for each property. There are several ways

of representing this. We have chosen here to represent child objects as popout windows, somewhat like a hierarchical menu.

To achieve this, we need to do two things. First, we need to add a type property to the object specification and define the types that we support:

objviewer.TYPE_SIMPLE="simple";

objviewer.TYPE_ARRAY="array";

objviewer.TYPE_FUNCTION="function";

objviewer.TYPE_IMAGE_URL="image url";

objviewer.TYPE_OBJECT="object";

We modify the function that generates specs for objects that don’t come with their own to take account of the type, as shown in listing 4.13.

objviewer.autoSpec=function(obj){

var members=new Array();

for (var propName in obj){

var propValue=obj[name];

var propType=objviewer.autoType(value);

var spec={name:propName,type:propType};

Listing 4.13 Modified autoSpec() function

members.append(spec);

}

if (obj && obj.length>0){

for(var i=0;i

var propName="array ["+i+"]";

var propValue=obj[i];

var propType=objviewer.ObjectViewer.autoType(value);

var spec={name:propName,type:propType};

members.append(spec);

}

}

return members;

}

objviewer.autoType=function(value){

var type=objviewer.TYPE_SIMPLE;

if ((value instanceof Array)){

type=objviewer.TYPE_ARRAY;

}else if (value instanceof Function){

type=objviewer.TYPE_FUNCTION;

}else if (value instanceof Object){

type=objviewer.TYPE_OBJECT;

}

return type;

}

Note that we also add support for numerically indexed arrays, whose elements wouldn’t be discovered by the for...in style of loop.

The second thing that we need to do is to modify the PropertyViewer to take account of the different types and render them accordingly, as shown in listing 4.14.objviewer.PropertyViewer=function

(objectViewer,memberSpec,appendAtTop){

this.objectViewer=objectViewer;

this.spec=memberSpec;

https://www.wendangku.net/doc/325208184.html,=https://www.wendangku.net/doc/325208184.html,;

this.type=this.spec.type;

this.value=objectViewer.object[https://www.wendangku.net/doc/325208184.html,];

this.rowTr=document.createElement("tr");

this.rowTr.className='objViewRow';

var isComplexType=(this.type==objviewer.TYPE_ARRAY

||this.type==objviewer.TYPE_OBJECT);

if ( !(isComplexType && this.objectViewer.isInline

)

){

https://www.wendangku.net/doc/325208184.html,Td=this.renderSideHeader();

《诗经·卫风·氓》原文翻译及知识点总结

《诗经·卫风·氓》原文翻译及知识点总结 《诗经·卫风·氓》原文翻译及知识点总结 篇一:诗经两首知识点归纳 《诗经》两首知识点梳理 (一)通假字 1.氓之蚩蚩,抱布贸丝(“蚩蚩”通“嗤嗤”,笑嘻嘻的样子)2.将子无怒,秋以为期(“无”通“毋”,不要) 3.士之耽兮,犹可说也(“说”通“脱”,解脱)4.匪来贸丝。(匪,通“非”,不是。) 5.于嗟鸠兮。(于,通“吁”,叹词。)6 .犹可说也。(说,通“脱”,解脱。) 7.隰则有泮。(泮,通“畔”,边、岸。)8岁亦莫止。(莫,通“暮”。) 9.彼尔维何,维常之华。(尔,通“”,花盛开的样子。华,通“花”。) 10.岂不日戒,N狁孔棘。(棘,通“急”) (二)古今异义 1.至于顿丘(①古义:直送到。②今义:表示另提一事。)1.泣涕涟涟(泣涕,古义:为眼泪|今义:鼻涕) 2.总角之宴,言笑宴宴(宴,古义:为欢聚|今义:为酒席) (三)一词多义 1.言: ①句首助词。如:言既遂矣。②相当于“而”。如:静言思之。 2.以:

①把,介词。如:秋以为期。②而,连词。如:以望复关。 3.作: ①本义是起来起身,引申为兴起,产生。如:薇亦作止。②开始。如:天下之难比作于易。③创作,撰写:自是指物做诗立就,又引申为著述,制造。如:常作二铁板,一板印刷,一板已自布字。④劳动,劳作。如:其中往来种作,男女衣着,悉如外人。 ⑤为,成为,引申为充当,充作。如:君当作磐石,妾当作蒲苇。 4.曰: ①动词词头,无实意。如曰归曰归。②叫做,称作。如:明有奇巧人曰王叔远。 ③说。如:子曰:“有朋自远方来,不亦乐乎。” 5.止: ①语尾助词。如:岁亦莫止。②脚,足。如:当斩左止者,笞五百。 ③停止,停留,又引申为使动用法。如:止子路宿。④制止,阻止。如:残贼公行,莫或止之。⑤容止,礼貌。如:人而无止,不死何候。 6.载: ①记录,记载。如:史载田横事。②年。如:自去舟职,五载复还。 ③装载。如:有好事者船载以入。引申为承担,承受。如:载舟载舟,所宜深思。 ④乘坐,乘车。如:直上载公子车。 ⑤祝词,起加强语气作用,多用于动词或形容词词头,可译为“且”“又”。如:“载欣载奔”。

英语原文及其翻译

Exploring Filipino School Counselors’ Beliefs about Learning Allan B. I. Bernardo [Abstract] School reform efforts that focus on student learning require school counselors to take on important new roles as advocates of student learning and achievement.But how do school counselors understand the process of learning? In this study, we explore the learning beliefs of 115 Filipino school counselors who indicated their degree of agreementwith 42 statements about the process of learning and the factors thatinfluence this process.A principal components analysis of the responses to the 42 statements suggested three factors:(F1)social-cognitive constructivist beliefs, (F2) teacher-curriculum-centered behaviorist beliefs,and (F3) individual difference factors.The preliminary results are briefly discussed in terms of issues related to how Filipino school counselors’ conceptions of learning may guide their strategies for promoting student learning and achievement. [Key words]beliefs about learning, conceptions of learning, school counselors, student learning, Philippines School reform efforts in different parts of the world have focusedon students’learning. In particular,most school improvement programsnow aim to ensure that students acquire the high-level knowledge and skills that help them to thrive in today’s highly competitive globaleconomy (e.g., Lee & Williams, 2006). I n this regard, school reform programs draw from various contemporary theories and research on learning (e.g.,Bransford,Brown, & Cocking, 1999; Lambert & McCombs, 1998).The basic idea is that all school improvement efforts should be directed at ensuring students achieve high levels of learning or attainment of well-defined curricular objectives and standards.For example, textbooks (Chien & Young, 2007), computers and educational technology (Gravoso, 2002; Haertnel & Means, 2003;Technology in Schools Task Force, 2003), and educational assessment systems (Black & Wiliam2004; Cheung & Ng, 2007; Clark, 2001; Stiggins, 2005) are being reconsidered as regards how they can effectively provide scaffolds and resources for advancing student learning. Likewise,the allocation and management of a school’s financial resources are assessed in terms ofwhether these are effectively mobilized and utilized towards improving student learning (Bolam, 2006; Chung & Hung, 2006; Retna, 2007). In this regard, some advocates have also called for an examination of the role of school counselors in these reform efforts (Herr, 2002). Inthe United States, House and Hayes (2002) challenged school counselors to take proactive leadership roles in advocating for the success of all

毕业设计外文翻译附原文

外文翻译 专业机械设计制造及其自动化学生姓名刘链柱 班级机制111 学号1110101102 指导教师葛友华

外文资料名称: Design and performance evaluation of vacuum cleaners using cyclone technology 外文资料出处:Korean J. Chem. Eng., 23(6), (用外文写) 925-930 (2006) 附件: 1.外文资料翻译译文 2.外文原文

应用旋风技术真空吸尘器的设计和性能介绍 吉尔泰金,洪城铱昌,宰瑾李, 刘链柱译 摘要:旋风型分离器技术用于真空吸尘器 - 轴向进流旋风和切向进气道流旋风有效地收集粉尘和降低压力降已被实验研究。优化设计等因素作为集尘效率,压降,并切成尺寸被粒度对应于分级收集的50%的效率进行了研究。颗粒切成大小降低入口面积,体直径,减小涡取景器直径的旋风。切向入口的双流量气旋具有良好的性能考虑的350毫米汞柱的低压降和为1.5μm的质量中位直径在1米3的流量的截止尺寸。一使用切向入口的双流量旋风吸尘器示出了势是一种有效的方法,用于收集在家庭中产生的粉尘。 摘要及关键词:吸尘器; 粉尘; 旋风分离器 引言 我们这个时代的很大一部分都花在了房子,工作场所,或其他建筑,因此,室内空间应该是既舒适情绪和卫生。但室内空气中含有超过室外空气因气密性的二次污染物,毒物,食品气味。这是通过使用产生在建筑中的新材料和设备。真空吸尘器为代表的家电去除有害物质从地板到地毯所用的商用真空吸尘器房子由纸过滤,预过滤器和排气过滤器通过洁净的空气排放到大气中。虽然真空吸尘器是方便在使用中,吸入压力下降说唱空转成比例地清洗的时间,以及纸过滤器也应定期更换,由于压力下降,气味和细菌通过纸过滤器内的残留粉尘。 图1示出了大气气溶胶的粒度分布通常是双峰形,在粗颗粒(>2.0微米)模式为主要的外部来源,如风吹尘,海盐喷雾,火山,从工厂直接排放和车辆废气排放,以及那些在细颗粒模式包括燃烧或光化学反应。表1显示模式,典型的大气航空的直径和质量浓度溶胶被许多研究者测量。精细模式在0.18?0.36 在5.7到25微米尺寸范围微米尺寸范围。质量浓度为2?205微克,可直接在大气气溶胶和 3.85至36.3μg/m3柴油气溶胶。

1外文文献翻译原文及译文汇总

华北电力大学科技学院 毕业设计(论文)附件 外文文献翻译 学号:121912020115姓名:彭钰钊 所在系别:动力工程系专业班级:测控技术与仪器12K1指导教师:李冰 原文标题:Infrared Remote Control System Abstract 2016 年 4 月 19 日

红外遥控系统 摘要 红外数据通信技术是目前在世界范围内被广泛使用的一种无线连接技术,被众多的硬件和软件平台所支持。红外收发器产品具有成本低,小型化,传输速率快,点对点安全传输,不受电磁干扰等特点,可以实现信息在不同产品之间快速、方便、安全地交换与传送,在短距离无线传输方面拥有十分明显的优势。红外遥控收发系统的设计在具有很高的实用价值,目前红外收发器产品在可携式产品中的应用潜力很大。全世界约有1亿5千万台设备采用红外技术,在电子产品和工业设备、医疗设备等领域广泛使用。绝大多数笔记本电脑和手机都配置红外收发器接口。随着红外数据传输技术更加成熟、成本下降,红外收发器在短距离通讯领域必将得到更广泛的应用。 本系统的设计目的是用红外线作为传输媒质来传输用户的操作信息并由接收电路解调出原始信号,主要用到编码芯片和解码芯片对信号进行调制与解调,其中编码芯片用的是台湾生产的PT2262,解码芯片是PT2272。主要工作原理是:利用编码键盘可以为PT2262提供的输入信息,PT2262对输入的信息进行编码并加载到38KHZ的载波上并调制红外发射二极管并辐射到空间,然后再由接收系统接收到发射的信号并解调出原始信息,由PT2272对原信号进行解码以驱动相应的电路完成用户的操作要求。 关键字:红外线;编码;解码;LM386;红外收发器。 1 绪论

英语原文及翻译

高速视频处理系统中的信号完整性分析 摘要:结合高速DSP图像处理系统讨论了高速数字电路中的信号完整性问题,分析了系统中信号反射、串扰、地弹等现象破坏信号完整性的原因,通过先进IS工具的辅助设计,找出了确保系统信号完整性的具体方法。 关键词:高速电路设计信号完整性 DSP系统 深亚微米工艺在IC设计中的使用使得芯片的集成规模更大、体积越来越小、引脚数越来越多;由于近年来IC工艺的发展,使得其速度越来越高。从而,使得信号完整性问题引起电子设计者广泛关注。 在视频处理系统中,多维并行输入输出信号的频率一般都在百兆赫兹以上,而且对时序的要求也非常严格。本文以DSP图像处理系统为背景,对信号完整性进行准确的理论分析,对信号完整性涉及的典型问题[1]——不确定状态、传输线效应、反射、串扰、地弹等进行深入研究,并且从实际系统入手,利用IS仿真软件寻找有效的途径,解决系统的信号完整性问题。 1 系统简介 为了提高算法效率,实时处理图像信息,本图像处理系统是基于DSP+FPGA结构设计的。系统由SAA7111A视频解码器、TI公司的TMS320C6701 DSP、Altera公司的EPlK50QC208 FPGA、PCI9054 PCI接口控制器以及SBRAM、SDRAM、FIFO、FLASH等构成。FPGA是整个系统的时序控制中心和数据交换的桥梁,而且能够对图像数据实现快速底层处理。DSP是整个系统实时处理高级算法的核心器件。系统结构框图如图1所示。 在整个系统中,PCB电路板的面积仅为15cm×l5cm,系统时钟频率高达167MHz,时钟沿时间为0.6ns。由于系统具有快斜率瞬变和极高的工作频率以及很大的电路密度,使得如何处理高速信号问题成为一个制约设计成功的关键因素。 2 系统中信号完整性问题及解决方案 2.1 信号完整性问题产生机理 信号的完整性是指信号通过物理电路传输后,信号接收端看到的波形与信号发送端发送的波形在容许的误差范围内保持一致,并且空间邻近的传输信号间的相互影响也在容许的范围之内。因此,信号完整性分析的主要目标是保证高速数字信号可靠的传输。实际信号总是存在电压的波动,如图2所示。在A、B两点由于过冲和振铃[2]的存在使信号振幅落入阴影部分的不确定区,可能会导致错误的逻辑电平发生。总线信号传输的情况更加复杂,任何一个信号发生相位上的超前或滞后都可能使总线上数据出错,如图3所示。图中,CLK为时钟信号,D0、D1、D2、D3是数据总线上的信号,系统允许信号最大的建立时间[1]为△t。在正常情况下,D0、D1、D2、D3信号建立时间△t1<△t,在△t时刻之后数据总线的数据已稳定,系统可以从总线上采样到正确的数据,如图3(a)所示。相反,当信号D1、D2、D3受过冲和振铃等信号完整问题干扰时,总线信号就发生

毕业设计外文翻译原文.

Optimum blank design of an automobile sub-frame Jong-Yop Kim a ,Naksoo Kim a,*,Man-Sung Huh b a Department of Mechanical Engineering,Sogang University,Shinsu-dong 1,Mapo-ku,Seoul 121-742,South Korea b Hwa-shin Corporation,Young-chun,Kyung-buk,770-140,South Korea Received 17July 1998 Abstract A roll-back method is proposed to predict the optimum initial blank shape in the sheet metal forming process.The method takes the difference between the ?nal deformed shape and the target contour shape into account.Based on the method,a computer program composed of a blank design module,an FE-analysis program and a mesh generation module is developed.The roll-back method is applied to the drawing of a square cup with the ˉange of uniform size around its periphery,to con?rm its validity.Good agreement is recognized between the numerical results and the published results for initial blank shape and thickness strain distribution.The optimum blank shapes for two parts of an automobile sub-frame are designed.Both the thickness distribution and the level of punch load are improved with the designed blank.Also,the method is applied to design the weld line in a tailor-welded blank.It is concluded that the roll-back method is an effective and convenient method for an optimum blank shape design.#2000Elsevier Science S.A.All rights reserved. Keywords:Blank design;Sheet metal forming;Finite element method;Roll-back method

毕业设计(论文)外文资料翻译〔含原文〕

南京理工大学 毕业设计(论文)外文资料翻译 教学点:南京信息职业技术学院 专业:电子信息工程 姓名:陈洁 学号: 014910253034 外文出处:《 Pci System Architecture 》 (用外文写) 附件: 1.外文资料翻译译文;2.外文原文。 指导教师评语: 该生外文翻译没有基本的语法错误,用词准确,没 有重要误译,忠实原文;译文通顺,条理清楚,数量与 质量上达到了本科水平。 签名: 年月日 注:请将该封面与附件装订成册。

附件1:外文资料翻译译文 64位PCI扩展 1.64位数据传送和64位寻址:独立的能力 PCI规范给出了允许64位总线主设备与64位目标实现64位数据传送的机理。在传送的开始,如果回应目标是一个64位或32位设备,64位总线设备会自动识别。如果它是64位设备,达到8个字节(一个4字)可以在每个数据段中传送。假定是一串0等待状态数据段。在33MHz总线速率上可以每秒264兆字节获取(8字节/传送*33百万传送字/秒),在66MHz总线上可以528M字节/秒获取。如果回应目标是32位设备,总线主设备会自动识别并且在下部4位数据通道上(AD[31::00])引导,所以数据指向或来自目标。 规范也定义了64位存储器寻址功能。此功能只用于寻址驻留在4GB地址边界以上的存储器目标。32位和64位总线主设备都可以实现64位寻址。此外,对64位寻址反映的存储器目标(驻留在4GB地址边界上)可以看作32位或64位目标来实现。 注意64位寻址和64位数据传送功能是两种特性,各自独立并且严格区分开来是非常重要的。一个设备可以支持一种、另一种、都支持或都不支持。 2.64位扩展信号 为了支持64位数据传送功能,PCI总线另有39个引脚。 ●REQ64#被64位总线主设备有效表明它想执行64位数据传送操作。REQ64#与FRAME#信号具有相同的时序和间隔。REQ64#信号必须由系统主板上的上拉电阻来支持。当32位总线主设备进行传送时,REQ64#不能又漂移。 ●ACK64#被目标有效以回应被主设备有效的REQ64#(如果目标支持64位数据传送),ACK64#与DEVSEL#具有相同的时序和间隔(但是直到REQ64#被主设备有效,ACK64#才可被有效)。像REQ64#一样,ACK64#信号线也必须由系统主板上的上拉电阻来支持。当32位设备是传送目标时,ACK64#不能漂移。 ●AD[64::32]包含上部4位地址/数据通道。 ●C/BE#[7::4]包含高4位命令/字节使能信号。 ●PAR64是为上部4个AD通道和上部4位C/BE信号线提供偶校验的奇偶校验位。 以下是几小结详细讨论64位数据传送和寻址功能。 3.在32位插入式连接器上的64位卡

诗经。氓 原文 翻译与赏析

诗经〃氓原文、翻译与赏析 《诗经〃卫风〃氓》原文 氓之蚩蚩,抱布贸丝。匪来贸丝,来即我谋。送子涉淇,

至于顿丘。匪我愆期,子无良媒。将子无怒,秋以为期。 乘彼垝垣,以望复关。不见复关,泣涕涟涟。既见复关,载笑载言。尔卜尔筮,体无咎言。以尔车来,以我贿迁。 桑之未落,其叶沃若。于嗟鸠兮,无食桑葚!于嗟女兮,无与士耽!士之耽兮,犹可说也。女之耽兮,不可说也。 桑之落矣,其黄而陨。自我徂尔,三岁食贫。淇水汤汤,渐车帷裳。女也不爽,士贰其行。士也罔极,二三其德。

三岁为妇,靡室劳矣;夙兴夜寐,靡有朝矣。言既遂矣, 至于暴矣。兄弟不知,咥其笑矣。静言思之,躬自悼矣。 及尔偕老,老使我怨。淇则有岸,隰则有泮。总角之宴,言笑晏晏。信誓旦旦,不思其反。反是不思,亦已焉哉! 翻译

无知农家小伙子,怀抱布匹来换丝。其实不是真换丝,找此借口谈婚事。送你渡过淇水西,到了顿丘情依依。不是我要误佳期,你无媒人失礼仪。 希望你不要生气,我们以秋天为期。 登上那堵破土墙,面朝复关凝神望。复关遥远不得见,心里忧伤泪千行。情郎忽从复关来,又说又笑喜洋洋。你去卜卦问吉祥,卦象吉祥心欢畅。 赶着你的车子来,把我财礼往上装。 桑树叶子未落时,挂满枝头绿萋萋。唉呀那些斑鸠呀,别把桑叶急着吃。唉呀年轻姑娘们,别对男人情太痴。男人要是迷恋你,要说放弃也容易。 女子若是恋男子,要想解脱不好离。 桑树叶子落下了,又枯又黄任飘零。自从嫁到你家来,多年挨饿受清贫。

淇水滔滔送我归,车帷溅湿水淋淋。我做妻子没差错,是你奸刁缺德行。 做人标准你全无,三心二意耍花招。 婚后多年为你妇,繁重家务不辞劳。早起晚睡不嫌苦,忙里忙外非一朝。你的目的一达到,逐渐对我施凶暴。兄弟不知我处境,个个见我都讥笑。 静下心来想一想,独自黯然把泪抛。 白头偕老当年誓,如今未老生怨愁。淇水滔滔终有岸,沼泽虽宽有尽 头。 回想少时多欢聚,说笑之间情悠悠。当年山盟又海誓,哪料反目竟成仇。 不要再想背盟事,既已恩绝就算了。

英文翻译(原文)

GRA VITY RETAINING?WALL 1. INTRODUCTION Retaining walls are structures used to provide stability for earth or other material where conditions disallow the mass to assume its natural slope, and are commonly used to hold back or support soilbanks,coal or ore piles, and water. Retaining walls are classified, based on the method of achieving stability, into six principal types (Fig.1). The gravity-wall depends upon its weight, as the name implies, for stability. The cantilever wall is a reinforced-concrete wall that utilizes cantilever action to retain the mass behind the wall from assuming a natural slope. Stability of this wall is partially achieved from the weight of soil on the heel portion of the base slab. A counterfort retaining wall is similar to a cantilever retaining wall, except that it is used where the cantilever is long or for very high pressures behind wall and has counterforts, which tie the wall and base together, built at intervals along the wall to reduce the bending moments and sheers. As indicated in Fig.1c, the counterfort is behind the wall and subjected to tensile forces. A buttressed retaining wall is similar to a counterfort wall, except that the bracing is in front of the wall and is in compression instead of tension. Two other types of walls not considered further are crib walls, which are built-up members of pieces of precast concrete, metal, or timber and are supported by anchor pieces embedded in the soil for stability, and semigravity walls, which are walls intermediate between a true gravity and a cantilever wall. (a)(b)(e)

外文翻译原文

204/JOURNAL OF BRIDGE ENGINEERING/AUGUST1999

JOURNAL OF BRIDGE ENGINEERING /AUGUST 1999/205 ends.The stress state in each cylindrical strip was determined from the total potential energy of a nonlinear arch model using the Rayleigh-Ritz method. It was emphasized that the membrane stresses in the com-pression region of the curved models were less than those predicted by linear theory and that there was an accompanying increase in ?ange resultant force.The maximum web bending stress was shown to occur at 0.20h from the compression ?ange for the simple support stiffness condition and 0.24h for the ?xed condition,where h is the height of the analytical panel.It was noted that 0.20h would be the optimum position for longitudinal stiffeners in curved girders,which is the same as for straight girders based on stability requirements.From the ?xed condition cases it was determined that there was no signi?cant change in the membrane stresses (from free to ?xed)but that there was a signi?cant effect on the web bend-ing stresses.Numerical results were generated for the reduc-tion in effective moment required to produce initial yield in the ?anges based on curvature and web slenderness for a panel aspect ratio of 1.0and a web-to-?ange area ratio of 2.0.From the results,a maximum reduction of about 13%was noted for a /R =0.167and about 8%for a /R =0.10(h /t w =150),both of which would correspond to extreme curvature,where a is the length of the analytical panel (modeling the distance be-tween transverse stiffeners)and R is the radius of curvature.To apply the parametric results to developing design criteria for practical curved girders,the de?ections and web bending stresses that would occur for girders with a curvature corre-sponding to the initial imperfection out-of-?atness limit of D /120was used.It was noted that,for a panel with an aspect ratio of 1.0,this would correspond to a curvature of a /R =0.067.The values of moment reduction using this approach were compared with those presented by Basler (Basler and Thurlimann 1961;Vincent 1969).Numerical results based on this limit were generated,and the following web-slenderness requirement was derived: 2 D 36,500a a =1?8.6?34 (1) ? ??? t R R F w ?y where D =unsupported distance between ?anges;and F y =yield stress in psi. An extension of this work was published a year later,when Culver et al.(1973)checked the accuracy of the isolated elas-tically supported cylindrical strips by treating the panel as a unit two-way shell rather than as individual strips.The ?ange/web boundaries were modeled as ?xed,and the boundaries at the transverse stiffeners were modeled as ?xed and simple.Longitudinal stiffeners were modeled with moments of inertias as multiples of the AASHO (Standard 1969)values for straight https://www.wendangku.net/doc/325208184.html,ing analytical results obtained for the slenderness required to limit the plate bending stresses in the curved panel to those of a ?at panel with the maximum allowed out-of-?atness (a /R =0.067)and with D /t w =330,the following equa-tion was developed for curved plate girder web slenderness with one longitudinal stiffener: D 46,000a a =1?2.9 ?2.2 (2) ? ? ? t R f R w ?b where the calculated bending stress,f b ,is in psi.It was further concluded that if longitudinal stiffeners are located in both the tension and compression regions,the reduction in D /t w will not be required.For the case of two stiffeners,web bending in both regions is reduced and the web slenderness could be de-signed as a straight girder panel.Eq.(1)is currently used in the ‘‘Load Factor Design’’portion of the Guide Speci?cations ,and (2)is used in the ‘‘Allowable Stress Design’’portion for girders stiffened with one longitudinal stiffener.This work was continued by Mariani et al.(1973),where the optimum trans-verse stiffener rigidity was determined analytically. During almost the same time,Abdel-Sayed (1973)studied the prebuckling and elastic buckling behavior of curved web panels and proposed approximate conservative equations for estimating the critical load under pure normal loading (stress),pure shear,and combined normal and shear loading.The linear theory of shells was used.The panel was simply supported along all four edges with no torsional rigidity of the ?anges provided.The transverse stiffeners were therefore assumed to be rigid in their directions (no strains could be developed along the edges of the panels).The Galerkin method was used to solve the governing differential equations,and minimum eigenvalues of the critical load were calculated and presented for a wide range of loading conditions (bedding,shear,and combined),aspect ratios,and curvatures.For all cases,it was demonstrated that the critical load is higher for curved panels over the comparable ?at panel and increases with an increase in curvature. In 1980,Daniels et al.summarized the Lehigh University ?ve-year experimental research program on the fatigue behav-ior of horizontally curved bridges and concluded that the slen-derness limits suggested by Culver were too severe.Equations for ‘‘Load Factor Design’’and for ‘‘Allowable Stress Design’’were developed (respectively)as D 36,500a =1?4?192(3)? ?t R F w ?y D 23,000a =1?4 ?170 (4) ? ? t R f w ?b The latter equation is currently used in the ‘‘Allowable Stress Design’’portion of the Guide Speci?cations for girders not stiffened longitudinally. Numerous analytical and experimental works on the subject have also been published by Japanese researchers since the end of the CURT project.Mikami and colleagues presented work in Japanese journals (Mikami et al.1980;Mikami and Furunishi 1981)and later in the ASCE Journal of Engineering Mechanics (Mikami and Furunishi 1984)on the nonlinear be-havior of cylindrical web panels under bending and combined bending and shear.They analyzed the cylindrical panels based on Washizu’s (1975)nonlinear theory of shells.The governing nonlinear differential equations were solved numerically by the ?nite-difference method.Simple support boundary condi-tions were assumed along the curved boundaries (top and bot-tom at the ?ange locations)and both simple and ?xed support conditions were used at the straight (vertical)boundaries.The large displacement behavior was demonstrated by Mi-kami and Furunishi for a range of geometric properties.Nu-merical values of the load,de?ection,membrane stress,bend-ing stress,and torsional stress were obtained,but no equations for design use were presented.Signi?cant conclusions include that:(1)the compressive membrane stress in the circumfer-ential direction decreases with an increase in curvature;(2)the panel under combined bending and shear exhibits a lower level of the circumferential membrane stress as compared with the panel under pure bending,and as a result,the bending moment carried by the web panel is reduced;and (3)the plate bending stress under combined bending and shear is larger than that under pure bending.No formulations or recommendations for direct design use were made. Kuranishi and Hiwatashi (1981,1983)used the ?nite-ele-ment method to demonstrate the elastic ?nite displacement be-havior of curved I-girder webs under bending using models with and without ?ange rigidities.Rotation was not allowed (?xed condition)about the vertical axis at the ends of the panel (transverse stiffener locations).Again,the nonlinear distribu-

相关文档